gpt4 book ai didi

c++ - Opencv 2.4.2代码详解-人脸识别

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:32 24 4
gpt4 key购买 nike

引用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

他们使用的人脸 vector 生成如下

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 ,其中每个矩形包含检测到的对象。

所以一个矩形由 [ 初始 x, 初始 y, 宽度, 高度] 组成。所以你可以通过 ( x + width*0.5 , y + height*0.5 ) 找到它的中心。这个中心对于椭圆也是一样的。

如果要绘制矩形,请使用rectangle 函数。查看Documentation .

函数中的参数如下:

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

结果如下:

enter image description here

关于c++ - Opencv 2.4.2代码详解-人脸识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com