Visual Studio 2017
OpenCV 3.4
确定人脸图像保存的路径,在接下来过程中程序读取这些图片进行人脸相似度对比图像库保存路劲:f:\mm\1
使用直方图方法计算人脸图像相似度,主要实现思路:1)从本地读取两张人脸图像2)将需要对比的图像进行HSV格式转换3)构建图像的直方图模型,并进行直方图归一化4)比较两张图片的直方图模型,计算图片的直方图相似度5)判断相似度值,如果大于0.85左右我们可以认为两只人脸图片比较相似的
采用直方图方法进行人脸相似度的代码:#include
选择两张相似的人脸进行相似度比对测试修改main函数中的载入图像文件:Mat orgImg = imread('F:\\mm\\1\\img-4.jpg');Mat img = imread('F:\\mm\\1\\img-1.jpg');运行程序输出:相似度:0.805062
选择两张不同的人脸进行相似度比对测试修改main函数中的载入图像文件:Mat orgImg = imread('F:\\mm\\1\\img0.jpg');Mat img = imread('F:\\mm\\1\\img-1.jpg');运行程序输出:相似度:0.173482
选择两张相似的人脸,但色彩的和关照度不一样的进行相似度比对测试修改main函数中的载入图像文件:Mat orgImg = imread('F:\\mm\\1\\img-1.jpg');Mat img = imread('F:\\mm\\1\\img-8.jpg');运行程序输出:相似度:0.301016从这个测试样例中可以发现,使用直方图的方法进行相似度对比的准确度并不高,应用场景有限。