我已将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图像来检测瞳孔,那么我怎么能知道瞳孔的位置及其半径?
答案 0 :(得分:0)
我相信这一行:
cvCanny(grayscaleImg2, cannyImg2, 0, 255, 3);
应改为:
cvCanny(imgThreshed, cannyImg2, 0, 255, 3);
因为你想在阈值模板上找到轮廓。