gpt4 book ai didi

python - 如何找到颜色 "Upper"和 "Lower"范围的颜色?

转载 作者:行者123 更新时间:2023-12-02 16:24:09 25 4
gpt4 key购买 nike

我刚刚开始学习使用 opencv 进行颜色过滤。我已经了解了大部分基础知识,但被困在一件事上。

import cv2
import numpy as np

img = cv2.imread("Circles.png")

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

lower_range = np.array([169,100,100])
upper_range = np.array([189,255,255])

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

cv2.imshow("Image", img)
cv2.imshow("Mask",mask)

cv2.waitKey(0)
cv2.destroyAllWindows()
我在哪里可以找到我想要过滤的颜色范围?
谢谢

最佳答案

所以基本上,你要做的基本上是过滤掉一种颜色。默认情况下,图像以蓝色、绿色和红色三个 channel 表示。但是,使用这种表示模式,您无法轻松过滤颜色,因为值被分成三个 channel 。这就是 HSV(色相、饱和度、值)表示模式发挥作用的地方。
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)将 BGR 格式图像转换为 HSV 格式表示。
现在,您可以获得所需颜色的值,只需将 +-delta 值添加到 H channel ,您就可以相应地过滤颜色。
例如,如果要过滤绿色
格力颜色的 BGR 表示将是 (0,255,0)。首先,我们需要在 HSV 中找到等效的颜色表示,即 (60,255,255)。我们可以相应地添加 [H-10, 100,100] 和 [H+10, 255, 255] 作为上限和下限。
您可以使用将任何 BGR 转换为相应的 HSV 值。

color_bgr=np.uint8([[[0,255,0]]])
color_hsv = cv2.cvtColor(color_bgr,cv2.COLOR_BGR2HSV)
print(color_hsv)
请参阅此链接了解更多详情
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.html

关于python - 如何找到颜色 "Upper"和 "Lower"范围的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62650692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com