我正在尝试使用OpenCV泛色填充算法。为了更好地解决图像中阴影引起的颜色差异,我首先将图像转换到HSV颜色空间hsv_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2HSV)
使用(int(10), int(0), int(0))
的loDiff和upDiff,我希望泛色填充算法只将色调值与起始像素相差-10到+10的像素视为连接像素。
然而,在具有起始颜色(50,100,100)和具有仅色调不同的颜色的区域(60,100,100)的测试图像中,该颜色已经被仅(int(1), int(0), int(0))
的upDiff填充。
是我误解了泛色填充算法吗?还是我错过了一些关于颜色空间转换的东西?
1条答案
按热度按时间p1tboqfb1#
您对
floodFill()
的理解是正确的,但您在其他地方做错了。像这样做。
这将输出以下内容。