你好,看到你说opencv中人脸检测转换成眼睛只要替换一个分类器。请问它们程序原理一样吗?是Adaboost,矩形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你好,看到你说opencv中人脸检测转换成眼睛只要替换一个分类器。请问它们程序原理一样吗?是Adaboost,矩形相关的知识,希望对你有一定的参考价值。

参考技术A 原理一样,都是用haar分类器,Adaboost算法
你写程序时候载入两个分类器,一个叫face一个叫eye
然后检测到脸部,就设定ROI为脸部,在进行眼睛检测

请教,jni调用,类型转换.用opencv进行静态人脸检测

参考技术A 想实现基于android的人脸检测,初步想法是结合颜色信息和opencv的haar特征。
现在面临的问题是java层到C层的类型转换问题。具体描述如下:
在java层读入相册中的图片,存成数组,在c中将图像数据转换成mat(Mat imgData(h, w, CV_8UC4, (unsigned char*) cbuf);),利用cvtColor转换成bgr格式,再转换成YcbCr格式(仍然是Mat类型)。
可是后面用到的cvAnd、cvErode、cvDilate、cvFindContours等函数的参数都是CvArr*(初学android,我先用C写了人脸检测的函数,当时输入的图像直接是IplImage*,不需要类型转换)。
我试过强制转换(如:IplImage presult=IplImage(Mresult);),可是最后会报错:OpenCV Error: Bad argument (Unknown array type) in cv::Mat cv::cvarrToMat(const CvArr*, bool, bool, int), file /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/core/src/matrix.cpp, line 698。
已经实现的整个过程是:java层:bitmap—>int数组,C层:int数组—>Mat。现在问题是C层以前我写的函数输入是IplImage*,现在该怎么从Mat—>IplImage,再从IplImage—>Mat?
如果能用代码说明就更好了。

以上是关于你好,看到你说opencv中人脸检测转换成眼睛只要替换一个分类器。请问它们程序原理一样吗?是Adaboost,矩形的主要内容,如果未能解决你的问题,请参考以下文章

Pyhton,OpenCV对象检测之——Haar级联人脸及眼睛检测

人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐

Dlib+Opencv库实现疲劳检测

Python计算机视觉:视频人脸马赛克

Python计算机视觉:视频人脸马赛克

Python计算机视觉:视频人脸马赛克