当前位置:   article > 正文

OpenCV 人脸识别、图片相似度检测_c# emgu.cv 比较两张人脸是否为同一个人

c# emgu.cv 比较两张人脸是否为同一个人
  1. 识别出人脸后会得到两个人脸的 Rect 数组,然后比较这两个 Rect 数组的相似度即可!

实现步骤

====

工程目录准备


  1. 新建 Android Studio 项目 OpenCVCheck

  2. 导入 OpenCVLibrary320

  3. 在 module 下的 build.gradle 中引入 OpenCVLibrary 的编译:

compile project(‘:openCVLibrary320’)

检测任意两张图片的相似度的实现步骤


  1. 初始化 OpenCV:

static {

if (OpenCVLoader.initDebug()) {

Log.e(TAG, “OpenCV load success !”);

} else {

Log.e(TAG, “OpenCV load failed !”);

}

}

  1. 加载两张图片进入内存

Bitmap mBitmap1 = BitmapFactory.decodeResource(getResources(), R.mipmap.pic1);

Bitmap mBitmap2 = BitmapFactory.decodeResource(getResources(), R.mipmap.pic2);

  1. 将内存中的两张图片 bitmap 转换为 Mat 矩阵

Mat mat1 = new Mat();

Mat mat2 = new Mat();

Mat mat11 = new Mat();

Mat mat22 = new Mat();

Utils.bitmapToMat(mBitmap1, mat1);

Utils.bitmapToMat(mBitmap2, mat2);

Imgproc.cvtColor(mat1, mat11, Imgproc.COLOR_BGR2GRAY);

Imgproc.cvtColor(mat2, mat22, Imgproc.COLOR_BGR2GRAY);

  1. 把 Mat 矩阵的 type 转换为 Cv_8uc1(1 通道 8 位矩阵)类型,然后转换为 Cv_32F,通过 OpenCV 来进行俩个矩阵的比较

/**

  • 比较来个矩阵的相似度

  • @param srcMat

  • @param desMat

*/

public void comPareHist(Mat srcMat, Mat desMat) {

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/778672
推荐阅读
相关标签
  

闽ICP备14008679号