我想检查 PNG 图像是否包含特定颜色。
我使用这个教程
这是图片:
我想检查浅绿色是否存在。在 RGB 中是:
[165, 209, 103]
这是我的脚本:
import cv2
import numpy as np
image = cv2.imread("01.png")
hsvimg = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lb = np.array([68, 100, 100])
ub = np.array([88, 255, 255])
mask = cv2.inRange(hsvimg, lb, ub)
if 255 in mask:
print("true")
我从教程中的脚本中获取了范围。它表示 HSV 颜色是 [78, 129, 209]。 这是正确的吗?
但是脚本没有返回 true。
感谢您的帮助。这就是绿色的工作原理:)
import cv2
import numpy as np
image = cv2.imread("01.png")
lb = np.array([98, 202, 160])
ub = np.array([118, 215, 170])
mask = cv2.inRange(image, lb, ub)
if 255 in mask:
print("true")
但是如果我使用另一张图像并检查其他颜色,则它不起作用。只适合绿色... 这是扩展图:
这是我的代码,用于检查所有颜色。它仅适用于绿色,如果我将其从数组中删除,则不会检测到其他颜色:
import cv2
import numpy as np
image = cv2.imread("01.png")
target_colors = [([98, 202, 160], [118, 215, 170]), ([40, 195, 235], [50, 210, 255]), ([35, 85, 215], [50, 105, 235]), ([15, 0, 200], [35, 8, 215])]
for color_range in target_colors:
lb = np.array(color_range[0])
ub = np.array(color_range[1])
mask = cv2.inRange(image, lb, ub)
if 255 in mask:
print("true")