2012-12-13 127 views
0

我已經將BGR圖像轉換爲HSV以檢測黑色圓圈,然後如何在HSV圖像上執行Canny邊緣?我曾嘗試過,但它根本不起作用。在HSV圖像中執行Canny邊緣

IplImage *capturedImg = cvLoadImage("template.jpg",1); 
IplImage* imgHSV = cvCreateImage(cvGetSize(capturedImg), 8, 3); 
cvCvtColor(capturedImg, imgHSV, CV_BGR2HSV); 
IplImage* imgThreshed = cvCreateImage(cvGetSize(capturedImg), 8, 1); 

cvInRangeS(imgHSV, cvScalar(0, 0,0), cvScalar(255, 255, 38),imgThreshed); 
cvShowImage("HSV",imgThreshed); 
IplImage*cannyImg2=cvCreateImage(cvGetSize(imgThreshed),8,1); 
cvCanny(grayscaleImg2,cannyImg2,0,255,3); 
cvShowImage("canny2",cannyImg2); 

第一個圖像是人眼檢測,然後我用HSV圖像來檢測瞳孔,所以我怎麼能知道學生和其半徑的位置? enter image description here

+0

請添加示例圖像。 –

回答

0

我相信行:

cvCanny(grayscaleImg2, cannyImg2, 0, 255, 3); 

應改爲:

cvCanny(imgThreshed, cannyImg2, 0, 255, 3); 

,因爲你想找到的閾值的面具的輪廓。