需要在算法里面添加的逻辑是:如果宽<高的时候
如果检测不到人脸,宽 高分别扩大1.4倍 在重新检测 返回人脸的检测数量
如果宽>高 (人脸是躺着的情况)
旋转人脸90 检测人脸+关键点 如果关键点的置信度小于0.6 那么认为关键点定的位置不准确
重新旋转270 度 检测人脸+关键点 直到关键点的置信度满意为止
图片旋转的逻辑是:
http://blog.youkuaiyun.com/moses1213/article/details/48790801
#include "cv.h"
#include "highgui.h"
int main()
{
IplImage* src = cvLoadImage("threshold12.bmp",-1);
IplImage* srcCopy = cvCreateImage(cvSize(src->height, src->width),src->depth, src->nChannels);
cvTranspose(src, srcCopy);
cvFlip(srcCopy, NULL, 1);
cvNamedWindow("result");
cvShowImage("result", srcCopy);
cvSaveImage("rotate.bmp", srcCopy);
cvWaitKey();
return 0;
}
http://blog.youkuaiyun.com/zmdsjtu/article/details/73466162