位置: IT常识 - 正文

【Android App】人脸识别中使用Opencv比较两张人脸相似程度实战(附源码和演示 超详细)(android_app.intro)

编辑:rootadmin
【Android App】人脸识别中使用Opencv比较两张人脸相似程度实战(附源码和演示 超详细)

推荐整理分享【Android App】人脸识别中使用Opencv比较两张人脸相似程度实战(附源码和演示 超详细)(android_app.intro),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android apkpure,apk.renme,apprentice,apk.renme,android-app,android render,apk.renme,android render,内容如对您有帮助,希望把文章链接给更多的朋友!

需要全部代码请点赞关注收藏后评论区留言私信~~~

一、比较两张人脸的相似程度

直方图由一排纵向的竖条或者竖线组成,横轴代表数据类型,纵轴代表数据多少。 图像直方图经常应用于特征提取、图像匹配等方面。

 假设有两幅图像,它们的直方图很相似,这说明两幅图的像素分布相当接近,他们很可能来自相邻场景,相似度越高,两幅图越可能是同样来源,这便是直方图应用于图像匹配的缘由。OpenCV的Imgproc工具有一个compareHist方法,可以比较两个矩阵结构的相似程度,其内部就采用直方图比较两幅图像像素点灰度值的分布情况,因为只有灰度值参加比较,所以要先将全彩矩阵转为灰度矩阵再调用Imgproc的compareHist方法加以判断

相似度比较步骤如下

(1)分别对两张图片检测人脸,得到各自的人脸矩阵数组;

(2)两张图片都找到人脸的话,再从中截取人脸矩阵并转成位图对象;

【Android App】人脸识别中使用Opencv比较两张人脸相似程度实战(附源码和演示 超详细)(android_app.intro)

(3)调整位图尺寸,使得两幅图片的宽高保持一致,也就是把较大的位图缩放到较小位图的尺寸;

(4)把两个位图对象转为灰度矩阵,再通过直方图比较它们的相似度;

由于compareHist方法的返回值在0-1之间,值越大表示越相似,一般相似度达到0.5就很高了

二、效果展示

世界杯进行的如火如荼,现在十六强的名单已经全部出来了,接下来让我们用世界杯中的著名球星的照片来进行相似度比较

1:内马尔与梅西 由结果可见不太像 

2: C罗与梅西 由结果可见比较高了

 

 3:C罗与贝克汉姆(年轻的时候) 由结果可见是相当高的相似度

 三、代码

部分源码如下 需要全部代码请点赞关注收藏后评论区留言私信~~~

package com.example.face;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import com.example.face.util.BitmapUtil;import com.example.face.util.FaceUtil;import org.opencv.android.BaseLoaderCallback;import org.opencv.android.LoaderCallbackInterface;import org.opencv.android.OpenCVLoader;import org.opencv.android.Utils;import org.opencv.core.Mat;import org.opencv.core.MatOfRect;import org.opencv.core.Rect;import org.opencv.core.Scalar;import org.opencv.core.Size;import org.opencv.imgproc.Imgproc;import org.opencv.objdetect.CascadeClassifier;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;public class CompareImageActivity extends AppCompatActivity { private final static String TAG = "CompareImageActivity"; private int CHOOSE_CODE1=31, CHOOSE_CODE2=32; // 挑选第一张图片和挑选第二张图片的请求码 private Bitmap mBitmap1, mBitmap2; // 第一张图片和第二张图片的位图对象 private ImageView iv_face1, iv_face2; // 第一张图片和第二张图片的图像视图 private TextView tv_result; //
本文链接地址:https://www.jiuchutong.com/zhishi/290753.html 转载请保留说明!

上一篇:阿拉普扎的船屋,印度喀拉拉邦 (© Martin Harvey/The Image Bank/Getty Images)(阿普拉萨)

下一篇:卢塞恩老城,瑞士 (© Xantana/Getty Images)(卢塞恩小镇瑞士)

  • iqooz5x返回键怎么设置

  • 无线网络图标上有个叉(无线网络图标上有个感叹号怎么解决)

  • 华为mate30有没有无线充电功能(华为mate30有没有nfc功能)

  • ipl是什么意思(BADgipl是什么意思)

  • 华为电脑管家打不开怎么办(华为电脑管家打不开任务图标)

  • vivo手机是否支持O T G(vivo手机是否支持红外线功能)

  • 企业微信管理员可以看到所有对话吗(企业微信管理员如何撤回别人的消息)

  • 手机息屏后打不开(手机黑屏打不通电话)

  • 拼多多助力是什么意思(拼多多助力是什么原理)

  • 钉钉未激活是为什么(钉钉未激活怎么办)

  • l5410相当于什么cpu(l5460相当于)

  • 手机发不了视频怎么回事(手机发不了视频怎么办)

  • 小米cc9屏幕是什么材质(小米cc9屏幕参数)

  • 京东的个人中心在哪里(京东的个人中心怎么找核销码)

  • 苹果手机怎么设置天气位置(苹果手机怎么设置门禁卡NFC)

  • 手机里的照片怎么传到电脑(手机里的照片怎么传到u盘里面)

  • 饿了么怎么跨省点外卖(饿了么怎么跨省下单)

  • 小米9收音机在哪(小米9收音机在哪里打开)

  • 苹果6有128g的吗国行(苹果手机6有128g的吗)

  • xr支持双卡吗(xs支持双卡吗)

  • 咻电怎么退押金(咻电怎么退押金微信)

  • 手机号码通话记录清单(手机号码通话记录查询)

  • Nvcpl是什么进程 启动项上Nvcpl是什么意思(pniopcacexe是什么进程)

  • 真实世界的人工智能应用落地——OpenAI篇 ⛵(真实世界人工智能)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络