OpenCV 学习笔记 3:找出人脸,同时比较两张图片中的人脸相
分类: OpenCV2012-11-12 18:50 5394 人阅读 评论(4) 收藏 举报
终于到了有实际应用的功能了,有 2 张图片,里面各有一个人脸,我的目的是比较这两
个人脸的相似度,这里用到了 facedetect 的功能,还有图像转换,图像剪切,以及直方图
的比较。具体流程是:
1。分别用 facedetect 功能将两张图片中的人脸检测出来
2。将人脸部分的图片剪切出来,存到两张只有人脸的图片里。
3。将这两张人脸图片转换成单通道的图像
4。使用直方图比较这两张单通道的人脸图像,得出相似度。
这里对图的要求还是比较高的,光线和姿势不能有差别,脸的垂直或者左右角度偏差就
会影响比较,但和两张图片的大小关系不大,本人觉得较适合于证件照的对比。
下面是代码,其中haarcascade_frontalface_alt.xml是opencv里 facedetect例子用的样本。
比较的是 srcImage 和 targetImage 对应的文件.
还有下面是 IplImage 和 Mat 混用,纯当熟悉这两个类了。
2. #include "opencv2/objdetect/objdetect.hpp"
3. #include "opencv2/highgui/highgui.hpp"