huv*_*rda 1 python opencv colors
我正在尝试制作一个我检测到红色的程序.但是有时它比平时更暗,所以我不能只使用一个值.什么是检测不同色调红色的好范围?我目前使用的范围是128,0,0 - 255,60,60,但有时它甚至都没有检测到我放在它前面的红色物体.
RGB不是特定颜色检测的良好色彩空间.HSV将是一个不错的选择.
对于RED,您可以选择HSV范围(0,50,20) ~ (5,255,255)并(175,50,20)~(180,255,255)使用以下颜色表.当然,这RED range不是那么精确,但它还可以.
从我的另一个答案中获取的代码:检测像素是否为红色
#!/usr/bin/python3
# 2018.07.08 10:39:15 CST
# 2018.07.08 11:09:44 CST
import cv2
import numpy as np
## Read and merge
img = cv2.imread("ColorChecker.png")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
## Gen lower mask (0-5) and upper mask (175-180) of RED
mask1 = cv2.inRange(img_hsv, (0,50,20), (5,255,255))
mask2 = cv2.inRange(img_hsv, (175,50,20), (180,255,255))
## Merge the mask and crop the red regions
mask = cv2.bitwise_or(mask1, mask2 )
croped = cv2.bitwise_and(img, img, mask=mask)
## Display
cv2.imshow("mask", mask)
cv2.imshow("croped", croped)
cv2.waitKey()
Run Code Online (Sandbox Code Playgroud)
相关答案:
当然,对于具体问题,也许其他颜色空间也可以.
| 归档时间: |
|
| 查看次数: |
4439 次 |
| 最近记录: |