2017-07-24 56 views
0

我是OpenCV中的新成员,我不确定我的设计是否正确。我想为Android手机编写C++面部检测器,它应该检测不同的手机方向和旋转角度的脸部。当电话方向是纵向和横向时,让我们留下来。我正在使用OpenCV来旋转/编辑图像和dlib来检测脸部。 dlib形状预测使用shape_predictor_68_face_landmarks.dat进行初始化,它只能以正确的电话方向检测脸部(这意味着如果我将电话旋转90°,它无法检测脸部。) 为了使检测脸部可以从加速度计读取轴并将源图像旋转到正确的方向发送到dlib面部检测器之前,它检测到确定,但在dlib :: full_object_detection形状的输出坐标当然匹配旋转的图片,但不是原始的。所以这意味着我必须转换(旋转地标)回到原始图像。OpenCV,dlib地标旋转

在dlib或OpenCV中是否有任何现有API可以为指定角度旋转地标(dlib :: full_object_detection)?如果你能举一些例子,这将是一件好事。

回答

0

对于iPhone应用程序,使用iPhone相机拍摄的图像中的EXIF数据可用于首先旋转图像。但我不能保证这对于Android手机。

在大多数实际情况下,当原始图像中的人脸检测没有返回任何结果(或返回奇怪的结果,如非常小的面部)时,旋转图像并执行人脸检测会更容易。我已经在几个Android应用程序中看到了这一点,并在几个项目中使用了myseklf。