今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)
本人所用树莓派4B 装载的系统与版本如下:
版本可用命令 (lsb_release -a) 查询:
Opencv 版本是4.5.1:
学了这些OpenCv的理论性知识,不进行实践实在是太无聊了,今天就尝试使用OpenCv,已知颜色信息,来识别一张图片的颜色 ,并输出掩膜图像,坐标范围等。
目录
掩膜的基本知识:
掩膜是由0和1组成的一个二进制图像。
当在某一功能中应用掩膜时,1值区域被处理,被屏蔽的0值区域不被包括在计算中。通过制定的数据值,数据范围,有限或无限值,感兴趣区和注释文件来定义图像掩膜,也可以应用上述选项的任意组合作为输入来建立掩膜。
以下定义为AI生成:
**掩膜(Mask)**是一个二维数组(或矩阵),通常与图像具有相同的尺寸,但数据类型通常是二值化的(例如,8位无符号整数,其中0表示“无”或“透明”,而非零值(如255)表示“有”或“不透明”)。掩膜在图像处理中主要用于以下目的:
- 区域选择:你可以使用掩膜来选择图像中的特定区域进行进一步处理。例如,你可能只对图像中的某个特定形状或区域感兴趣,那么你可以创建一个只在该区域内部为1(或255),其他地方为0的掩膜,然后将其与原始图像相乘,从而只保留你感兴趣的区域。
- 形态学操作:在形态学图像处理中,如腐蚀(erosion)和膨胀(dilation),掩膜被用作结构元素。这些结构元素定义了邻域的形状和大小,用于确定像素的邻域如何影响该像素的最终值。
- 融合和混合:掩膜也可以用于将两个或多个图像融合在一起。例如,你可以使用掩膜来定义如何将一个图像的内容叠加到另一个图像上,只在掩膜为1的位置进行叠加。
- 图像修复:在图像修复或去噪中,掩膜可以帮助确定哪些像素需要被修复或替换。
RGB颜色控件与HSV:
在已知的图像中我们常用RGB的三元值大小来描述一个颜色,但RGB不适用于环境变化的情况,因此需要将RGB转换为HSV的描述形式,
这里需要注意的是,通过软件获取RGB数值后,传给Opencv程序的顺序应该是BGR!
RGB颜色空间
RGB(红、绿、蓝)颜色控件是基于RGB颜色空间的。RGB颜色空间是工业界的一种颜色标准,它使用三个颜色通道(红色、绿色和蓝色)来表示颜色。每个通道都有256个可能的值(从0到255),因此RGB颜色空间可以表示约16,777,216种不同的颜色(即256^3)。
特点:
- 基础性:RGB颜色空间是图像处理中最基本、最常用的颜色空间,因为它与大多数显示设备和打印设备直接相关。
- 面向硬件:RGB颜色空间是面向硬件的,因此它在计算机图形和图像处理中非常常见。
- 受亮度影响:RGB颜色空间的三个分量(红、绿、蓝)都与亮度密切相关。因此,当亮度改变时,三个分量都会相应地改变。
- 均匀性较差:RGB颜色空间是一种均匀性较差的颜色空间,因为人眼对这三种颜色分量的敏感程度是不一样的。
HSV颜色空间
HSV(色调、饱和度、明度)颜色控件是基于HSV颜色空间的。HSV颜色空间比RGB更接近人们对彩色的感知经验,它使用色调(Hue)、饱和度(Saturation)和明度(Value)三个参数来描述颜色。
特点:
- 直观性:HSV颜色空间非常直观地表达颜色的色调、鲜艳程度和明暗程度,方便进行颜色的对比。
- 稳定性:HSV颜色空间在面对光照变化时比RGB更稳定,能更好地反映颜色的本质。
- 适合图像处理:由于HSV颜色空间的直观性和稳定性,它在图像处理中比RGB更受欢迎。例如,在HSV颜色空间下,更容易跟踪某种颜色的物体,常用于分割指定颜色的物体。
- 参数范围:在HSV