【发布时间】:2012-06-12 11:56:52
【问题描述】:
我有一张带有橙色盖子位置的咖啡罐的图像,我想找到它。 这是。
gcolor2 实用程序显示盖子中心的 HSV 为 (22, 59, 100)。 问题是如何选择颜色的界限呢?我试过 min = (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,它们是有道理的。您是如何检索这些值的?
-
这里是 gcolor2 imageshack.us/photo/my-images/23/rgb2hsv.png 的截图。然后我检查了yafla.com/yaflaColor/ColorRGBHSL.aspx?RGB=&Colors=上的颜色编号#FFA069,,,,,,,,,转换是一样的。
-
这可能是由于OpenCV中的HSV范围不同,即H:0 - 180,S:0 - 255,V:0 - 255。
标签: python opencv computer-vision hsv color-detection