我有一个咖啡罐的图像,我想找到一个橙色的盖子位置。 这是它。使用`cv :: inRange`(OpenCV)为颜色检测选择正确的上下HSV边界
gcolor2实用程序显示盖子中心的HSV为(22,59,100)。 问题是如何选择颜色的限制呢?我试图分钟=(18,40,90)和max =(27,255,255),但是已经得到意想不到
这里是Python代码:
import cv
in_image = 'kaffee.png'
out_image = 'kaffee_out.png'
out_image_thr = 'kaffee_thr.png'
ORANGE_MIN = cv.Scalar(18, 40, 90)
ORANGE_MAX = cv.Scalar(27, 255, 255)
COLOR_MIN = ORANGE_MIN
COLOR_MAX = ORANGE_MAX
def test1():
frame = cv.LoadImage(in_image)
frameHSV = cv.CreateImage(cv.GetSize(frame), 8, 3)
cv.CvtColor(frame, frameHSV, cv.CV_RGB2HSV)
frame_threshed = cv.CreateImage(cv.GetSize(frameHSV), 8, 1)
cv.InRangeS(frameHSV, COLOR_MIN, COLOR_MAX, frame_threshed)
cv.SaveImage(out_image_thr, frame_threshed)
if __name__ == '__main__':
test1()
我检查的数值(22,59,100)HSV,而且他们似乎并不匹配类似的那些相同的任何颜色盖子。但是作为BGR,它们是有道理的。你是如何检索这些值的? – karlphillip
这是gcolor2的截图http://imageshack.us/photo/my-images/23/rgb2hsv.png/。然后,我检查颜色编号#FFA069的http://www.yafla.com/yaflaColor/ColorRGBHSL.aspx?RGB =&Colors = ,,,,,,,,,并且转换是相同的。 –
这可能是由于OpenCV中的HSV范围不同,即H:0-180,S:0-255,V:0-255。 –