2012-12-13 5 views
0

J'avais converti une image BGR en HSV pour détecter les cercles noirs, puis comment j'effectue Canny edge sur l'image HSV? J'avais essayé mais ça ne marche pas du tout.Exécuter Canny Edge dans HSV Image

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); 

La première image est la détection des yeux, puis-je utiliser l'image HSV pour détecter l'élève, alors comment puis-je connaître la position des élèves et son rayon? enter image description here

+0

s'il vous plaît ajouter un exemple d'image. –

Répondre

0

Je crois que la ligne:

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

devrait plutôt être:

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

parce que vous voulez trouver les contours du masque seuillée.