为了滤除图像中的颜色,有必要设置边界以确定需要检测的颜色。我觉得这主要是一个反复试验的过程。有没有什么方法可以快速找到特定颜色的正确阈值?在这个特定的例子中,我试图检测下面图片中的灰色区域。这当然没有检测到虚线。对于这个例子,我需要非常具体的边界。问题是,我怎样才能轻易找到他们?在
hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
lower = np.array([0, 0, 0], np.uint8)
upper = np.array([180, 255, 200], np.uint8)
mask = cv2.inRange(hsv, lower, upper)
另一个选择是使用online image color picker。你可以上传你的图片,在你的例子中会得到一些值,比如
HSV: 97.5° 5.1% 61.57%
。请注意,您需要将它们转换为H、S和V的OpenCV比例H,OpenCV中的色调从0到180不等,但在外部世界中,色调通常是以0到360度为单位来测量的,所以要得到颜色的H
h = 97.5° / 2 = 48.7
S和V是从
0 ( = 0% in outer world)
到255 ( = 100% in outer world)
测量的,因此所以,目标HSV颜色是
(49, 13, 157)
。我建议使用±10作为量程。或者更加严格。我认为您的情况可能是可以只选择中心图的像素,没有任何标签,然后应用形态操作关闭,如果需要的话。在可以使用HSV颜色阈值脚本来隔离所需的颜色范围
相关问题 更多 >
编程相关推荐