我有一個咖啡罐的圖像,我想找到一個橙色的蓋子位置。 這是它。使用`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。 –