在HSV图像中执行Canny Edge

时间:2012-12-13 13:07:09

标签: opencv colors hsv

我已将BGR图像转换为HSV以检测黑色圆圈,然后我如何在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

1 个答案:

答案 0 :(得分:0)

我相信这一行:

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

应改为:

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

因为你想在阈值模板上找到轮廓。