opencv for android中使用照相机前置摄像头是照片是颠倒的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv for android中使用照相机前置摄像头是照片是颠倒的?相关的知识,希望对你有一定的参考价值。
在使用opencv for android编写调用照相机程序时,显示的人脸是上下左右都是调到的,正常opencv中有 cv::transpose()和cv::flip()函数可以实现自动翻转,但是楼主是才学opencv for android,不知道flip和transpose在那个库文件里,如何调用?求大神指点?不胜感激!!!
flip、transpose都在头文件core.hpp,函数原型:CV_EXPORTS_W void flip(InputArray src, OutputArray dst, int flipCode);
参数:
CV_EXPORTS_W void transpose(InputArray src, OutputArray dst);
transpose应该是求矩阵的转置,估计你得用flip函数 参考技术A
flip、transpose都在头文件core.hpp,函数原型:
CV_EXPORTS_W void flip(InputArray src, OutputArray dst, int flipCode);
参数:
CV_EXPORTS_W void transpose(InputArray src, OutputArray dst);
transpose应该是求矩阵的转置,估计你得用flip函数
本回答被提问者采纳如何使用opencv从相机的所有位置检测带有android的人脸?
【中文标题】如何使用opencv从相机的所有位置检测带有android的人脸?【英文标题】:how can i detect faces with android using opencv, from all positions of the camera? 【发布时间】:2017-10-19 18:27:32 【问题描述】:我做了一个应用程序来检测人脸并在人脸周围画一个矩形。问题是它只检测一个位置的人脸,也就是说,我可以检测单元格在一个位置的人脸,但是当我转动它时它就停止检测了。
我想知道是否有一种算法可以让我检测任何位置的人脸,无论是躺着、朝上等......
我正在使用 frontalFace.xml 的 xml。
vector< Rect > detectedFaces;
detectedFaces.clear();
frontalFaceClassifier.detectMultiScale( dst, detectedFaces,
1.5, 3, 2 | CV_HAAR_SCALE_IMAGE , Size(90,90) );
qDebug()<<"Cantidad de caras en el vector : " << detectedFaces.size();
if( detectedFaces.size() > 0 )
actualFace = detectedFaces.at( 0 );
countDetectedFaces++;
qDebug()<<"**********qwerty**********"<<detectedFaces.size()<<"----------";
for(int i=0;i<detectedFaces.size();i++)
// Dibujar un cuadrado en la zona en donde se detecta la cara.
Rect dibujarCuadrado = detectedFaces.at(i);
cv::rectangle (mat, dibujarCuadrado, 20, 1, LINE_8, 0);
【问题讨论】:
【参考方案1】:您似乎并不清楚自己在做什么。这不是关于算法,而是关于分类。
您需要使用所需的信息集来训练分类器。 OpenCV 在 XML 文件中为您提供了预训练的集合,例如“正面”和“侧面”,因此首先开始运行正面和侧面的 svm,然后进行一些过滤以消除结果中的重叠。
如果你想为你的识别器添加其他功能,你需要自己训练它。
【讨论】:
以上是关于opencv for android中使用照相机前置摄像头是照片是颠倒的?的主要内容,如果未能解决你的问题,请参考以下文章
UnsatisfiedLinkError - 在 Android 中旋转相机图像数据(在 OpenCV 中使用,而不仅仅是在屏幕上显示)