分享

Python OpenCV教程:特定颜色的检测

 阿明哥哥资料区 2020-07-30

我们用颜色空间或颜色模型来表示计算机上的颜色,该模型基本上将颜色范围描述为数字元组。除了讨论每种颜色之外,我们还将讨论我们使用的最常见的颜色空间。即RGB(红色,绿色,蓝色)和HSV(色调,饱和度,值)。

RGB基本上将颜色描述为三个组成部分的元组。每个分量可以取0到255之间的值,其中元组(0,0,0)表示黑色,而(255,255,255)表示白色。例如,如果要在屏幕上显示纯蓝色像素,则R值将为0,G值将为0,B值将为255。
下面是一些RGB颜色的例子:
颜色RGB 值
红色255, 0, 0
橙色255, 128, 0
粉色255, 153, 255

下面是OpenCV Python颜色检测示例的完整代码

import cv2
import numpy as np

img = cv2.imread('www..png')

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

#Red color rangle 169, 100, 100 , 189, 255, 255

lower_range = np.array([110,50,50])
upper_range = np.array([255,255,0])

mask = cv2.inRange(hsv, lower_range, upper_range)

cv2.imshow('www.linuxmi.ccom - image', img)
cv2.imshow('www.linuxmi.ccom - mask', mask)

cv2.waitKey(0)
cv2.destroyAllWindows()
首先,你需要在你的工作目录中有一个图像,我正在使用这个图像,你可以从下面得到这个图像。
 
首先我们需要加载图像,然后我们将图像转换为HSV颜色。
img = cv2.imread('www..png')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
之后,您需要确定颜色的上限和下限,可以为此建议使用imutils。在上图中,我们将检测三种蓝色。
lower_range = np.array([110,50,50])
upper_range = np.array([255,255,0])
之后,我们需要创建图像的蒙版。
mask = cv2.inRange(hsv, lower_range, upper_range)
最后我们需要展示图像和蒙版。
cv2.imshow('www.linuxmi.ccom - image', img)
cv2.imshow('www.linuxmi.ccom - mask', mask)

现在运行完整的代码,结果如下:



文章来源:Linux迷 https://www./

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多