我正在试图找到一个程序来检测黑色的任何色调(以及一些轻微的灰色),但我目前很难找到一个好的上色调矢量(upper_hue变量),这将允许我提取大部分黑色色调没有提取其他颜色。它似乎适用于黑色鞋子或雨伞等图片,但是在亮度不同的道路照片上也存在问题。
我正在努力寻找一个良好的上色调范围,使该程序能够对抗这种情况,但是它有可能获得非黑色的颜色。
黑色和灰色值的上部色调矢量是多少?如果这不是问题,那么解决这个问题的好方法是什么?
代码:
table {
border-collapse: collapse;
}
table,td {
padding: 0;
}
img {
display: inherit;
}
答案 0 :(得分:1)
在hsv颜色空间中,这非常简单。
img = cv2.imread(img_path)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_gray = np.array([0, 5, 50], np.uint8)
upper_gray = np.array([360, 50, 255], np.uint8)
mask_gray = cv2.inRange(hsv, lower_gray, upper_gray)
img_res = cv2.bitwise_and(img, img, mask = mask_gray)
H是色调,因此灰色检测器需要所有H值(0-> 360°)。 S是饱和度(0-> 255)。灰度介于0到50之间。如果我们不想保留白色值,则可以取5作为最小值。 V是亮度值(0 =暗-> 255 =亮)。