2012-07-06 25 views
6

Bir yüz tanıma programı yapmak için OpenCV tarafından sağlanan belgelere başvurdum, birden çok yüzü tanıyor ve normal çalışıyor. Dokümantasyonda yüzleri vurgulamak için elipsler yaptılar. Ne anlamıyorumOpencv 2.4.2 Kod Açıklama Yüz Tanıma

face_cascade.detectMultiScale(frame_gray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE,cv::Size(30,30)) 

dokümantasyon ie şöyle onlar üretilir kullanıyorsunuz

for(int i = 0; i < faces.size(); i++) 
{ 
    Point center(faces[i].x+faces[i].width*0.5,faces[i].y+faces[i].height*0.5); 
    //more code follows drawing the ellipse 

yüzleri vektör aşağıdaki gibi onlar hesapladık elips merkezini hesapladık nasıl Program

http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html

onlar elips merkezini hesaplayarak nasıl bilmek istiyorum bağlantısını verilmiştir ve bir daire yerine bir dikdörtgen çizmek istersem, ne yapmam gerekiyor?

cevap

13

Tespit edilen yüzler, yüzleri çevreleyen bir dizi dikdörtgen olarak döndürülür. Belgelerin belirttiği gibi, çıktı Vector of rectangles where each rectangle contains the detected object.

Yani bir dikdörtgen [ initial x, initial y, width, height ]'dan oluşur. Böylece merkezini (x + width*0.5 , y + height*0.5) numaralı telefondan bulabilirsiniz. Bu merkez elips için de aynı.

Dikdörtgen çizmek isterseniz, rectangle işlevini kullanın. Documentation'a bakın.

pt1 = (x , y) 

pt2 = (x + width , y + height) 

aşağıdaki gibi değiştirin hattına elips çekme hattı aşağıdaki gibidir:

rectangle(frame,Point (faces[i].x,faces[i].y),Point (faces[i].x+faces[i].width, faces[i].y+faces[i].height),Scalar(255,0,255),4,8,0); 

Bu sonuç verir: aşağıdaki şekilde işlev

değişkenleri olacak

enter image description here

4

Bu arada, OpenCV 2.4.2, yüz tanıma da dahil olmak üzere ded. Burada ve yüz tanıma (cv :: CascadeClassifier ile) yüz algılama birleştirmek için bir öğretici ve tam kaynak kodu örneği (cv ile :: FaceRecognizer) şudur: Yüz tanıma için sorulan bu yana

. Aynı zamanda yüz algılama nasıl yapıldığını gösterir, bu yüzden de ilginç olabilir.

+0

Bunu gördüm. Teşekkürler. –

+0

Bir videodan çoklu yüzleri tanımak için birden fazla modeli desteklemez. Bu kod kodu bunun için nasıl değiştirilebilir? Saf bir yol, yüz modellerinin bir listesini tutmak olacaktır, ancak bu etkili bir uygulama gibi görünmemektedir. – Tariq

İlgili konular