绘制颜色矩的直方图

# 代码5-2 绘制颜色矩的直方图
def color_moments(img, trans_hsv=False):if trans_hsv == True:img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)# 颜色分割f, s, t = cv2.split(img)# 创建特征存放列表color_feature = []# 一阶f_mean = np.mean(f)s_mean = np.mean(s)t_mean = np.mean(t)color_feature.extend([f_mean, s_mean, t_mean])# 二阶f_std = np.std(f)s_std = np.std(s)t_std = np.std(t)color_feature.extend([f_std, s_std, t_std])# 三阶f_skewness = np.mean(abs(f - f.mean()) ** 3)s_skewness = np.mean(abs(s - s.mean()) ** 3)t_skewness = np.mean(abs(t - t.mean()) ** 3)f_thirdMoment = f_skewness ** (1. / 3)s_thirdMoment = s_skewness ** (1. / 3)t_thirdMoment = t_skewness ** (1. / 3)color_feature.extend([f_thirdMoment, s_thirdMoment, t_thirdMoment])return color_featureimg1 = cv2.imread('../data/leaf1.jpg')
img2 = cv2.imread('../data/leaf2.jpg')img1 = img1[188: 238, 275: 325, :]
img2 = img2[69: 119, 108: 158, :]
# 调用函数获取颜色矩
img1_feature = color_moments(img1)
img2_feature = color_moments(img2)x = np.arange(9)
labels = [i + j for i in ['一阶', '二阶', '三阶'] for j in ['B', 'G', 'R']]
fs = 15
plt.figure(figsize=(7, 4))  # 设置画布的大小
plt.bar(x - 0.15, img1_feature, width=0.3)
plt.bar(x + 0.15, img2_feature, width=0.3)
plt.xticks(x, labels, fontsize=fs)
plt.xlabel('各阶颜色矩', fontsize=fs)
plt.legend(['leaf1', 'leaf2'])
plt.tight_layout()
# plt.savefig('../tmp/颜色矩.png', dpi=1080)
plt.show()

这段代码是用于绘制颜色矩的直方图。它首先定义了一个color_moments函数,该函数计算图像的颜色矩特征。然后,它从两张图像中提取颜色矩特征,并将这些特征存储在img1_featureimg2_feature变量中。

接下来,代码使用matplotlib库绘制直方图。它创建一个包含9个条形的图表,分别表示一阶、二阶和三阶的颜色矩特征。通过调用plt.bar函数,将img1_featureimg2_feature的值分别绘制为两组条形。

最后,代码设置x轴的刻度标签和标签字体的大小,以及x轴和y轴的标签。通过调用plt.legend函数,为图表添加图例。最后,调用plt.show函数显示图表。

如果你想保存这个图表,可以将注释掉的代码plt.savefig('../tmp/颜色矩.png', dpi=1080)取消注释,将图表保存为指定路径下的图片文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/193103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress路径怎么优化?wordpress伪静态怎么做?

Wordpress这个程序是动态的,在后台中设置链接的格式为朴素,就可以了,这样简单又方便,因为百度对于路径的都是一样对待的,静态路径和动态路径,都是一样的对待。 有的时候,有的人会认为动态路径不…

vue+less+style-resources-loader 配置全局颜色变量

全局统一样式后,可配置vue.config.js实现全局颜色变量,方便在编写时使用统一风格的色彩 一、新建global.less 二、下载安装style-resources-loader npm i style-resources-loader --save-dev三、在vue.config.js中进行配置 module.exports {pluginOpt…

Python Locals:引领代码风潮,变量管理新尝试

更多资料获取 📚 个人网站:ipengtao.com 在Python中,locals()函数是一个强大的工具,它使程序员能够访问和操作当前作用域内的局部变量。本文将深入探讨locals()函数的功能、应用和重要性。 动态变量赋值和操作 locals()函数让我…

算法通关村第七关—理解二叉树的遍历(白银)

深入理解前中后序遍历 给定一棵二叉树 二叉树前序遍历 public void preorder(TreeNode root,List<Integer>res){if&#xff08;rootnull){return;}res.add(root.val);preorder(root.left,res);preorder(root.right,res); }递归的过程如下图所示 从图中可以看到&#x…

JavaScript编程基础 – For循环

JavaScript编程基础 – For循环 JavaScript Programming Essentials – For Loop By JacksonML 循环可以多次执行代码块&#xff0c;而不用反复重写相同的语句。这无疑对提升代码质量、减少错误大有脾益。本文将简要介绍for循环的几种案例&#xff0c;希望对读者有所帮助。 …

【Python篇】文件概述 | 读文件 | 写文件 | 追加文件操作

文章目录 &#x1f339;什么是文件&#x1f6f8;读 操作 — r⭐打开文件⭐读取文件&#x1f388;循环读取&#x1f388;读取文件中某一个词语的个数 ⭐关闭文件 &#x1f33a;小结&#x1f6f8;写 操作 — w&#x1f6f8;追加 操作 — a &#x1f339;什么是文件 文件是计算机…

『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建OA系统

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器&#xff08;Elastic Compute Cloud&#xff09;是亚马…

2023年AI报告:首个投研GPTs测评重塑AI竞争格局

今天分享的是AI系列深度研究报告&#xff1a;《2023年AI报告&#xff1a;首个投研GPTs测评重塑AI竞争格局》。 &#xff08;报告出品方&#xff1a;国盛证券&#xff09; 报告共计&#xff1a;10页 1.一键创建 GPTs 助力行业研究 GPTs 目前仅对企业用户和 ChatGPT Plus 会员…

右值引用和移动语句(C++11)

左值引用和右值引用 回顾引用 我们之前就了解到了左值引用&#xff0c;首先我们要了解引用在编译器底层其实就是指针。具体来说&#xff0c;当声明引用时&#xff0c;编译器会在底层生成一个指针来表示引用&#xff0c;但在代码编写和使用时&#xff0c;我们可以像使用变量类…

HarmonyOS系统和Android系统有什么区别?

鸿蒙系统和安卓系统有如下几点区别&#xff1a;点击这里查看获取鸿蒙系统资料方式 (qq.com) 一、开发商不同&#xff1a; 鸿蒙OS&#xff1a;由中国华为公司主导开发的系统&#xff0c;2019年首次发布&#xff0c;现在已经更新至鸿蒙OS4.0。 安卓系统&#xff1a;是由安迪鲁宾…

visual Studio MFC 平台实现图像增强中的线性变换(负变换)和非线性变换(对数与幂律)

MFC 实现数字图像处理中的图像增强操作 本文使用visual Studio MFC 平台实现图像增强中典型的三种图像增强的方法中的两大类&#xff0c;包括线性变换–>负变换&#xff0c;非线性变换–>对数变换和幂律变换&#xff1b;其中第三大类分段式变换可以参考MFC实现图像增强–…

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程 一、Termux配置1、下载安装2、配置存储和换源3、基本工具安装 二、Kali Linux安装1、下载安装脚本2、更换apt源3、图形化安装 三、Kali Nethunter安装1、下载安装脚本2、更换apt源3、图形化连接 四、报错汇总1、…

2023年5月电子学会青少年软件编程 Python编程等级考试一级真题解析(判断题)

2023年5月Python编程等级考试一级真题解析 判断题(共10题,每题2分,共20分) 26、在编写较长的Python程序时,所有代码都不需要缩进,Python会自动识别代码之间的关系 答案:错 考点分析:考查python代码书写格式规范,python编写较长的程序时,需要明确严格的缩进,不然有…

【ArcGIS Pro微课1000例】0044:深度学习--面部模糊(马赛克)

本文讲解ArcGIS Pro中通过深度学习工具实现人脸面部模糊,起到马赛克的作用。 文章目录 一、效果对比二、工具介绍三、案例实现一、效果对比 原始图片: 深度学习后的模糊照片: 二、工具介绍 本工具为ArcGIS Pro工具箱中的深度学习工具中的:使用深度学习分类像素,如下所示…

vue3中自定义hook函数

使用Vue3的组合API封装的可复用的功能函数 自定义hook的作用类似于vue2中的mixin技术 自定义Hook的优势: 很清楚复用功能代码的来源, 更清楚易懂 案例: 收集用户鼠标点击的页面坐标 hooks/useMousePosition.ts文件代码&#xff1a; import { ref, onMounted, onUnmounted …

Java LeetCode篇-深入了解关于栈的经典解法(栈实现:中缀表达式转后缀)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 中缀表达式转后缀说明 1.1 实现中缀表达式转后缀思路 2.0 逆波兰表达式求值 2.1 实现逆波兰表达式求值思路 3.0 有效的括号 3.1 实现有效的括号思路 4.0 栈的压…

法学毕业生个人简历16篇

想要从众多法学毕业求职者中脱颖而出&#xff0c;找到心仪的相关工作&#xff1f;可以参考这16篇精选的法学专业应聘简历案例&#xff0c;无论是应届比预算还是有工作经验&#xff0c;都能从中汲取灵感&#xff0c;提升简历质量。希望对大家有所帮助。 法学毕业生简历模板下载…

RPG项目01_脚本代码

基于“RPG项目01_场景及人物动画管理器”&#xff0c;我们创建一个XML文档 在资源文件夹下创建一个文件夹&#xff0c; 命名为Xml 将Xnl文档拖拽至文件夹中&#xff0c; 再在文件夹的Manager下新建脚本LoadManager 写代码&#xff1a; using System.Collections; using System…

Pycharm调用Conda虚拟环境

参考这个链接的评论区回答&#xff1a;Pycharm调用Conda虚拟环境 笑死&#xff0c;我之前也是这样的&#xff0c;不过好像也能用&#xff0c;搞不懂~

Ontrack EasyRecovery2024数据恢复软件详细功能介绍

Ontrack EasyRecovery2024是一款功能强大的数据恢复软件&#xff0c;它可以帮助用户从各种存储设备中恢复丢失或删除的数据。它支持多种文件系统和文件类型&#xff0c;可以恢复包括照片、视频、音频、文档、电子邮件和归档文件等不同类型的数据。 EasyRecovery15Mac版本下载如…