Java + opencv3.2.0实现模板匹配

  

模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术。

  

<强>函数: Imgproc。matchTemplate(垫形象,垫templ垫结果,int方法)
  

  

<强>参数说明:
  

  

图片:源图像
  templ:模板图像
  结果:比较结果
  方法:匹配算法

  

<强>匹配算法:
  

  

TM_SQDIFF平方差匹配法:该方法采用平方差来进行匹配;最好的匹配值为0;匹配越差,匹配值越大。
  TM_CCORR相关匹配法:该方法采用乘法操作,数值越大表明匹配程度越好。
  TM_CCOEFF相关系数匹配法:1表示完美的匹配。1表示最差的匹配。
  TM_SQDIFF_NORMED归一化平方差匹配法。
  TM_CCORR_NORMED归一化相关匹配法。
  TM_CCOEFF_NORMED归一化相关系数匹配法。

  

示例代码:

        公共静态void main (String [] args)   {//TODO自动生成方法存根   System.loadLibrary (Core.NATIVE_LIBRARY_NAME);      垫g_tem=Imgcodecs.imread (“F: \ \ mould.jpg”);   垫g_src=https://www.yisu.com/zixun/Imgcodecs.imread (“F: \ \ source.jpg”);      int result_rows=g_src.rows ()——g_tem.rows () + 1;   int result_cols=g_src.cols ()——g_tem.cols () + 1;   垫g_result=new垫(result_rows, result_cols CvType.CV_32FC1);   Imgproc。matchTemplate (g_src g_tem、g_result Imgproc.TM_CCORR_NORMED);//归一化平方差匹配法//Imgproc。matchTemplate (g_src g_tem g_result,//Imgproc.TM_CCOEFF_NORMED);//归一化相关系数匹配法//Imgproc。matchTemplate (g_src g_tem、g_result Imgproc.TM_CCOEFF);//////相关系数匹配法:1)表示完美的匹配。1表示最差的匹配。//Imgproc。matchTemplate (g_src g_tem、g_result Imgproc.TM_CCORR);////相关匹配法//Imgproc。matchTemplate (g_src g_tem、g_result Imgproc.TM_SQDIFF);////平方差匹配法:该方法采用平方差来进行匹配;最好的匹配值为0;匹配越差,匹配值越大。//Imgproc。matchTemplate (g_src g_tem、g_result Imgproc.TM_CCORR_NORMED);////归一化相关匹配法   核心。正常化(g_result g_result 0,1,核心。NORM_MINMAX 1新垫());   点matchLocation=new点();   MinMaxLocResult mmlr=Core.minMaxLoc (g_result);      matchLocation=mmlr.maxLoc;//此处使用maxLoc还是minLoc取决于使用的匹配算法   Imgproc。矩形(g_src matchLocation,   新的点(matchLocation。matchLocation x + g_tem.cols ()。y + g_tem.rows ()),   新的标量(0,0,0,0));      Imgcodecs.imwrite (“F: \ \ match.jpg g_src);   }   之前      

源图像:
  

  

 Java + opencv3.2.0实现模板匹配

  

模板图像:
  

  

 Java + opencv3.2.0实现模板匹配

  

匹配结果:
  

  

 Java + opencv3.2.0实现模板匹配

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Java + opencv3.2.0实现模板匹配