Atitit opencv 模板匹配
Atitit opencv 模板匹配
1.2. Atitit opencv 模板匹配 6中匹配算法貌似效果区别不大1
1.3. 对模板缩放的影响 一般的缩放可以,太大了就歇菜了。。2
1.1. 图片


1.2. Atitit opencv 模板匹配 6中匹配算法貌似效果区别不大
//创建于原图相同的大小,储存匹配度
Mat result = Mat.zeros(source.rows(),source.cols(),CvType.CV_32FC1);
//调用模板匹配方法
Imgproc.matchTemplate(source, dst, result,Imgproc.TM_SQDIFF);
Mat [ 1088*585*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x5a00fca0, dataAddr=0x5a260050 ]
规格化以后
Mat [ 1088*585*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x5a00fca0, dataAddr=0x5a260050 ]

// 使用minMaxLoc找出最佳匹配
// 对于CV_TM_SQDIFF和 CV_TM_SQDIFF_NORMED这两种方法,最小值为最佳匹配;对于别的方法最大值为最佳匹配
if( matchMethod == CV_TM_SQDIFF || matchMethod == CV_TM_SQDIFF_NORMED )
{ matchLoc = minLoc; }
else
{ matchLoc = maxLoc; }
1.3. 对模板缩放的影响 一般的缩放可以,太大了就歇菜了。。
1.4. Code
public class TemplateMaching {
private String sourcePath,dstPath;
private Mat source,dst;
//原图片
public void setSource(String picPath){
this.sourcePath = picPath;
}
//需要匹配的部分
public void setDst(String picPath){
this.dstPath = picPath;
}
//处理,生成结果图
public void process(String outpic,int matchMode){
//将文件读入为OpenCV的Mat格式
source = Highgui.imread(sourcePath);
dst = Highgui.imread(dstPath);
//创建于原图相同的大小,储存匹配度
Mat result = Mat.zeros(source.rows(),source.cols(),CvType.CV_32FC1);
//调用模板匹配方法
Imgproc.matchTemplate(source, dst, result,matchMode); //TM_CCOEFF_NORMED
//规格化 rst= Mat [ 1005*1236*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x57b3fca0, dataAddr=0x59e80050 ]
Core.normalize(result, result, 0, 1,Core.NORM_MINMAX, -1);
//获得最可能点,MinMaxLocResult是其数据格式,包括了最大、最小点的位置x、y
System.out.println( AtiJson.toJson(result));
MinMaxLocResult mlr = Core.minMaxLoc(result);
Point matchLoc;
if (matchMode == Imgproc.TM_SQDIFF || matchMode == Imgproc.TM_SQDIFF_NORMED) {
matchLoc = mlr.minLoc;
} else {
matchLoc = mlr.maxLoc;
}
//在原图上的对应模板可能位置画一个绿色矩形
Core.rectangle(source, matchLoc, new Point(matchLoc.x + dst.width(),matchLoc.y + dst.height()),new Scalar(0,255,0));
//将结果输出到对应位置
Highgui.imwrite(outpic,source);
}
public static void main(String[] args) {
//System.loadLibrary("opencv_java249"); F:\opencv_build_x64_vc12 bin\bin
System.load( "C:\\progrm\\opencv\\build\\java\\x64\\opencv_java2413.dll" );
TemplateMaching macher = new TemplateMaching();
//设置原图
String bigimg = "C:\\0img\\a.jpg";
macher.setSource(bigimg);
//设置要匹配的图
//String tmp_pic ="C:\\0img\\t3_saovei_mini.jpg";
String tmp_pic ="C:\\0img\\t2.jpg"; //ver mini
macher.setDst(tmp_pic);
String outpic ="C:\\0img\\tmpl_out.jpg";
macher.process(filex.addSuffix(outpic, "_TM_SQDIFF"),Imgproc.TM_SQDIFF);
macher.process(filex.addSuffix(outpic, "_TM_SQDIFF_NORMED"),Imgproc.TM_SQDIFF_NORMED);
macher.process(filex.addSuffix(outpic, "_TM_CCORR"),Imgproc.TM_CCORR);
macher.process(filex.addSuffix(outpic, "_TM_CCORR_NORMED"),Imgproc.TM_CCORR_NORMED);
macher.process(filex.addSuffix(outpic, "_TM_CCOEFF"),Imgproc.TM_CCOEFF);
macher.process(filex.addSuffix(outpic, "_TM_CCOEFF_NORMED"),Imgproc.TM_CCOEFF_NORMED);
System.out.println("--f");
}
}
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
,Uke部落首席大酋长,
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke 首席cto 奶牛科技首席cto , 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人。
uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,
uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 uke终身教育学校副校长
Uke 数据库与存储标准化协会副会长 uke出版社编辑总编
Uke医院 与医学院方面的创始人
Uke 户外运动协会理事长 uke交友协会会长
转载请注明来源:attilax的专栏 ?http://www.cnblogs.com/attilax/
--Atiend
Atitit opencv 模板匹配的更多相关文章
- Atitit opencv模板匹配attilax总结
Atitit opencv模板匹配attilax总结 找一幅图像的匹配的模板,可以在一段视频里寻找出我们感兴趣的东西,比如条形码的识别就可能需要这样类似的一个工作提取出条形码区域(当然这样的方法并不鲁 ...
- opencv 模板匹配与滑动窗口(单匹配) (多匹配)
1单匹配: 测试图片: code: #include <opencv\cv.h> #include <opencv\highgui.h> #include <open ...
- OpenCV模板匹配函数matchTemplate详解
参考文档:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/template_matchin ...
- OpenCV——模板匹配
minMaxLoc函数: void minMaxLoc( const Mat& src, double* minVal, double* maxVal=0, Point* minLoc=0, ...
- opencv::模板匹配(Template Match)
模板匹配介绍 模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域. 所以模板匹配首先需要一个模板图像T(给定的子图像) 另外需要一个待检测的图像-源图像S 工作方法,在带检测图像上,从左到右,从 ...
- 关于opencv模板匹配功能的项目测试记录
模板匹配功能介绍的很好的一篇博客:https://www.cnblogs.com/XJT2018/p/9934139.html 就如上述博客所言:“若原图像中的匹配目标发生旋转或大小变化,该算法无效. ...
- opencv模板匹配查找图像(python)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cv2 import numpy as np from cv2 import COLOR_B ...
- opencv 模板匹配, 已解决模板过大程序不工作的bug
#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv ...
- opencv模板匹配有趣的链接
https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_template_matching/py_template_matchi ...
随机推荐
- Maven让资源文件处理插件能够解析资源文件中的Maven属性
<build> <resources> <resource> <directory>${project.basedir}/src/main/resour ...
- Knockout学习之控制流绑定器
控制流绑定器 “foreach”绑定 顾名思义,通过该绑定我们就可以将监控数组循环输出到页面中去了,当然我们还是先来段简单的示例,仅仅只是输出监控数组: <ul data-bind=" ...
- python之函数用法islower()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法islower() #http://www.runoob.com/python/att ...
- Restful API的设计规范
原文:https://blog.csdn.net/u013063153/article/details/72828164 本文总结了 RESTful API 设计相关的一些原则,只覆盖了常见的场景.有 ...
- 7216:Minecraft
总时间限制: 1000ms内存限制: 65536kB 描述 Minecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界. 在Minecraft中,基本的建筑元 ...
- Window10激活
Windows10激活,通过kms激活. 01.安装对应版本的秘钥 专业版:W269N-WFGWX-YVC9B-4J6C9-T83GX 企业版:NPPR9-FWDCX-D2C8J-H872K-2YT4 ...
- Electromagnetic radiation and Radio 电磁波/电磁辐射和无线电波
电磁辐射,又称电磁波,是由同相振荡且互相垂直的电场与磁场在空间中以波的形式传递能量和动量,其传播方向垂直于电场与磁场构成的平面. 电磁辐射的载体为光子,不需要依靠介质传播,在真空中的传播速度为光速.电 ...
- Debug 路漫漫-02
重现标准 BTL Model ,using MATLAB: 1. 错误使用 cat要串联的数组的维度不一致.出错 cell2mat (line 83) m{n} = cat(1,c{:,n}); —— ...
- GCD 容易让人迷惑的几个问题
写在开头: 本文旨在阐述一些大家容易产生迷惑的GCD相关内容,如果是需要了解一些GCD概念或者基础用法,可以看看这两篇文章:GCD 扫盲篇.巧谈GCD . 目录: 迷惑一:队列和线程的关系 迷惑二:G ...
- 我收藏的技术知识图(每张都是大图)关于XX背后的知识、技术图,例如:Linux、Nginx架构、PHP知识卡、机会、HTML5移动、Android系统架构、YII架构的典型流程、Css知识表
我收藏的技术知识图(每张都是大图) HTML5Linux/Unix系统设计思想读书笔记 LinuxMVCJava线程MVCSpring MVCCSS3Nginx架构VimCliCommandsPHP知 ...