Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OpenCV模板匹配图形矩形周围匹配_Android_Templates_Opencv_Matching_Template Matching - Fatal编程技术网

Android OpenCV模板匹配图形矩形周围匹配

Android OpenCV模板匹配图形矩形周围匹配,android,templates,opencv,matching,template-matching,Android,Templates,Opencv,Matching,Template Matching,我想使用模板匹配,我正在使用一个代码,我发现它做我想做的事情,它把它保存在位图中,并得到位图的返回,问题是我不完全确定如何在矩形中绘制。在为android创建应用程序时,我只使用java,不使用本机。使用openCV,我是新手。我将获得多个匹配,因此我希望围绕这些点绘制矩形,并能够获得这些匹配位置的值 mFind=new Mat(256, 192, CvType.CV_8UC4); Input = new Mat(256, 192, CvType.CV_8UC4); Mat mResult

我想使用模板匹配,我正在使用一个代码,我发现它做我想做的事情,它把它保存在位图中,并得到位图的返回,问题是我不完全确定如何在矩形中绘制。在为android创建应用程序时,我只使用java,不使用本机。使用openCV,我是新手。我将获得多个匹配,因此我希望围绕这些点绘制矩形,并能够获得这些匹配位置的值

mFind=new Mat(256, 192, CvType.CV_8UC4); 
Input = new Mat(256, 192, CvType.CV_8UC4); 

Mat mResult8u = new Mat(256, 192, CvType.CV_8UC4); 

mResult = new Mat(217, 153, CvType.CV_8UC4); 

Utils.bitmapToMat(bmp2, mFind);
Utils.bitmapToMat(bmp1, Input);


Imgproc.matchTemplate(mFind, Input, mResult, Imgproc.TM_SQDIFF) ;
bmp3= Bitmap.createBitmap(mResult.cols(),  mResult.rows(),Bitmap.Config.ARGB_8888);
Core.normalize(mResult, mResult8u, 0, 255, Core.NORM_MINMAX, CvType.CV_8U);
Utils.matToBitmap(mResult8u, bmp3);
iv2.setImageBitmap(bmp3);

mResult
中找到匹配项,使用
Core.rectangle
Input
上绘制矩形,并将其写入文件

// / Localizing the best match with minMaxLoc
MinMaxLocResult mmr = Core.minMaxLoc(mResult);

Point matchLoc;
if (match_method == Imgproc.TM_SQDIFF || match_method == Imgproc.TM_SQDIFF_NORMED) {
    matchLoc = mmr.minLoc;
} else {
    matchLoc = mmr.maxLoc;
}

// / Show me what you got
Core.rectangle(Input, matchLoc, new Point(matchLoc.x + templ.cols(),
        matchLoc.y + templ.rows()), new Scalar(0, 255, 0));

// Save the visualized detection.
System.out.println("Writing "+ outFile);
Highgui.imwrite(outFile, img);
感谢您发布这篇文章(尽管是3年前:)。使用该方法时,绘制的矩形比模板图像大得多。如何确保绘制正确的矩形边界?谢谢