0

我已将 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图像检测瞳孔,那么我怎么知道瞳孔的位置和半径呢? 在此处输入图像描述

4

1 回答 1

0

我相信这条线:

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

应该改为:

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

因为您想在阈值蒙版上找到轮廓。

于 2012-12-14T04:37:56.400 回答