0

黒い円を検出するために BGR 画像を HSV に変換しましたが、HSV 画像でキャニー エッジを実行するにはどうすればよいですか? 試してみましたが、まったく機能しません。

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 に答える