在这篇文章中,我们将看到如何使用 Python 中的 OpenCV 模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。

pip install opencv-python
pip install numpy

然后,导入模块。读取图像并使用 OpenCV 模块中的 cvtColor() 函数将BGR图像转换为 HSV (色调、饱和度、值) 图像,

cvtcolor函数的作用(strcpy函数的用法) 第1张  cvtcolor函数的作用(strcpy函数的用法) 第2张  

现在,选择我们想要检测的颜色,并使用如下所示的HSV颜色贴图获得较低和较高的 HSV 值。在 OpenCV 中,色调的值从0到180,饱和度的值从0到255。因此,OpenCV 使用的 HSV 值范围在 (0–180, 0–255, 0–255) 之间。

cvtcolor函数的作用(strcpy函数的用法) 第3张  cvtcolor函数的作用(strcpy函数的用法) 第4张  

HSV 颜色图

H 根据 x 轴取值,S 根据 y 轴取值,V 始终在 (20-255) 之间的范围内取值。使用 HSV 值,我们需要使用 OpenCV 模块中的 inRange() 函数找到掩码并将其分配给变量(掩码)。使用 bitwise_and() 函数,我们可以通过将 BGR 图像作为第一个和第二个参数传递来获取我们选择的检测到的彩色图像,第三个参数将作为掩码并将其分配给变量 (detected_img)。

cvtcolor函数的作用(strcpy函数的用法) 第5张  cvtcolor函数的作用(strcpy函数的用法) 第6张  

Detected_img 将是程序的最终输出,并使用 OpenCV 模块中的 imshow()函数显示。

在我们的例子中,我们将检测输入图像的红色和绿色,下面的代码将只检测红色和绿色。

用作输入的图像:

cvtcolor函数的作用(strcpy函数的用法) 第7张  cvtcolor函数的作用(strcpy函数的用法) 第8张  

输入图像

整个程序:

cvtcolor函数的作用(strcpy函数的用法) 第9张  cvtcolor函数的作用(strcpy函数的用法) 第10张  

输出图像: