[英]Opencv 2.4.2 Code Explanation-Face Recognition
我已經參考了OpenCV提供的文檔來制作人臉識別程序,它識別多個面孔並且正常工作。 在文檔中,他們制作了橢圓來突出臉部。 我不明白的是他們如何計算橢圓的中心,他們計算如下
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
他們正在使用的面向量按如下方式生成
face_cascade.detectMultiScale(frame_gray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE,cv::Size(30,30))
文檔即程序在鏈接中給出
http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html
我想知道他們是如何計算橢圓的中心的,如果我想繪制一個矩形而不是一個圓,我該怎么做?
檢測到的面將作為圍繞面的一組矩形返回。 正如文檔所述,輸出是Vector of rectangles where each rectangle contains the detected object.
因此,一個矩形由[ initial x, initial y, width, height ]
。 所以你可以通過( x + width*0.5 , y + height*0.5 )
找到它的中心。 橢圓的中心也是一樣的。
如果要繪制矩形,請使用rectangle
功能。 請參閱文檔 。
函數中的參數如下:
pt1 = ( x , y )
pt2 = ( x + width , y + height )
將線條圖橢圓更改為以下行:
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);
它給出的結果如下:
順便說一句,OpenCV 2.4.2包括面部識別。 這是一個教程和完整的源代碼示例,用於組合面部檢測(使用cv :: CascadeClassifier)和面部識別(使用cv :: FaceRecognizer):
既然你要求面部識別。 它還展示了如何進行人臉檢測,因此它也可能很有趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.