2012-07-16 3 views
0
cvCvtColor(frame, hsv_frame, CV_BGR2HSV); 
cvInRangeS(hsv_frame, hsv_min, hsv_max, thresholded); 

푸른 공을 따라 가려고합니다. 최대 값과 최소값을 결정하기 위해 카메라로 찍은 사진을 열어서 MS 페인트를 열어서 H에서 180/240의 결과를 얻습니다. 그리고 (255/240) S와 L의 결과 cvInRangeS의 최소값과 최대 값을 계산하십시오.

108 113 115 112 105 H 
145 40 107 129 143 S 
97 129 96 102 124 L 

그래서 나는 다음 값 선택 : 다음 값을 받아 봐

CvScalar hsv_min = cvScalar(105, 40, 96); 
CvScalar hsv_max = cvScalar(115, 140, 130); 

을하지만 그것을 따라갈 때 좀처럼 내가 잘못 계산 건가요 그를 볼 수 없다? 또는 결과를 향상시키기 위해 무엇을 할 수 있습니까?

답변

2

왜 우선 이미지를 HSV으로 변환하고 HSL에 대해 이야기합니까? 착각하지 않으면 색상 공간이 다릅니다.

HSV 색 공간 사용이 범위를 사용하여 청색을 따지기하려면

Min (H/S/V): 90, 50, 50 
Max (H/S/V): 130, 255, 255 

는 또한 this online converter 당신을 도움이 될 것입니다.

그리고 CV_BGR2HSV_FULL를 사용하여 당신이 [0..360] 범위 줄 것이다 동안 CV_BGR2HSV 코드를 사용하여 HSV로 이미지를 변환 한 후 Hue 값이 범위 [0..180]에 있음을 잊지 마세요.

+3

CV_BGR2HSV_FULL은 범위 [0..255]에서 H 값을 제공하지 않습니다 [0..360] –

관련 문제