05颜色空间转换 问题
tianweimol opened this issue · 1 comments
作者您好:
我在学习第5节的时候,发现您促代码中给的HSV中蓝色的范围和我的结果对不上。不知道是不是我。
但我在修改成如下范围后,程序结果就正常了。
`
# 蓝色的范围
lower_blue = np.array([0, 43, 46])
upper_blue = np.array([10, 255, 255])
lower_blue2 = np.array([156, 43, 46])
upper_blue2 = np.array([180, 255, 255])
# 绿色的范围
lower_green = np.array([35, 43, 46])
upper_green = np.array([77, 255, 255])
# 红色的范围
lower_red =np.array([100, 43, 46])
upper_red =np.array([130, 255, 255])
img=cv2.imread('Simple.jpg')
img_hsv=cv2.cvtColor(img,cv2.COLOR_RGB2HSV)
mask_blue = cv2.inRange(img_hsv, lower_blue, upper_blue)
mask_blue2 = cv2.inRange(img_hsv, lower_blue2, upper_blue2)
mask_blue = mask_blue + mask_blue2
mask_green = cv2.inRange(img_hsv, lower_green, upper_green)
mask_red = cv2.inRange(img_hsv, lower_red, upper_red)
mask = mask_blue + mask_green + mask_red
`
嗯,标准的R/G/B颜色在HSV空间下的值用cvtColor转换后是:
- Red:[[[ 0 255 255]]]
- Green:[[[ 60 255 255]]]
- Blue:[[[120 255 255]]]
上下范围可以根据不同的光线环境进行调整。
如果是在工业应用中,一般光源是固定的,
所以在不借助AI的传统图像应用中,某种颜色的范围也会相对固定。