OpenCV学习笔记3:找出人脸,同时比较两张图片中的人脸相似度

这篇博客介绍了如何使用OpenCV进行人脸识别,并比较两张图片中人脸的相似度。通过facedetect检测人脸,剪切出人脸部分,转为单通道图像,然后利用直方图比较来确定相似度。这种方法对光线和姿势有一定要求,适用于证件照对比。
摘要由CSDN通过智能技术生成

    终于到了有实际应用的功能了,有2张图片,里面各有一个人脸,我的目的是比较这两个人脸的相似度,这里用到了facedetect的功能,还有图像转换,图像剪切,以及直方图的比较。具体流程是:

    1。分别用facedetect功能将两张图片中的人脸检测出来

    2。将人脸部分的图片剪切出来,存到两张只有人脸的图片里。

    3。将这两张人脸图片转换成单通道的图像

    4。使用直方图比较这两张单通道的人脸图像,得出相似度。

   这里对图的要求还是比较高的,光线和姿势不能有差别,脸的垂直或者左右角度偏差就会影响比较,但和两张图片的大小关系不大,本人觉得较适合于证件照的对比。

下面是代码,其中haarcascade_frontalface_alt.xml是opencv里facedetect例子用的样本。 比较的是srcImage和targetImage对应的文件.

还有下面是IplImage和Mat混用,纯当熟悉这两个类了。


 

 
#include "opencv/cv.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

#include <iostream>
#include <stdio.h>

using namespac
  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值