Atitti 模板匹配 Listjava.awt.Point matchTemplate(
Atitti 模板匹配 List<java.awt.Point> matchTemplate(
关键词 opencv java
public static List<java.awt.Point> matchTemplate(String srcImgFile, String desImgFile, String dbgDir, int matchMode,
int count) {
List<java.awt.Point> li = Lists.newArrayList();
BufferedImage src;
BufferedImage dest;
BufferedImage resultRect4dbg_img;
src = imgx.toImg(srcImgFile);
dest = imgx.toImg(desImgFile);
resultRect4dbg_img = imgx.toImg(srcImgFile);
Point tmpPt = null;
for (int i = count; i > 0; i--) {
java.awt.Point javaPoint = null;
if (i == count) // init
{
} else {
// Imgproc.drawContours(src, contours,-1, new
// Scalar(255,255,255),-1);
Rectangle drawRect = getDrawRect(tmpPt, dest.getWidth(), dest.getHeight());
src = drawContours(src, drawRect, Color.black);
imgx.save_overwrite(src, dbgDir + "\\" + filex.getUUidName() + " drawConted.jpg");
}
Point matchTemplatePt = null;
try {
// dbgDir + "\\" + filex.getUUidName() + " drawConted.jpg"
matchTemplatePt = matchTemplate(src, dest, resultRect4dbg_img, matchMode);
javaPoint = toJavaPoint(matchTemplatePt);
java.awt.Point downPnt=new java.awt.Point(javaPoint.x+dest.getWidth(), javaPoint.y+dest.getHeight());
imgx.rectangle(resultRect4dbg_img, javaPoint, downPnt, Color.red);
imgx.save_overwrite(resultRect4dbg_img, dbgDir + "\\" + filex.getUUidName() + " rected.jpg");
} catch (CantFindMatch | IOException e) {
System.out.println(e.getMessage() + "");
}
li.add(javaPoint);
tmpPt = matchTemplatePt;
}
return li;
}
public static Point matchTemplate(BufferedImage srcImg, BufferedImage desImg, BufferedImage resultRect4dbg,
int matchMode) throws CantFindMatch, IOException {
// 将文件读入为OpenCV的Mat格式
Mat source = bufImg2mat(srcImg);
// Highgui.imread(sourcePath);
// System.out.println( AtiJson.toJson(source));
// if(source.cols()==0)
// throw new IOException(sourcePath);
Mat dst = bufImg2mat(desImg);
// if(dst.cols()==0)
// throw new IOException(dstPath);
// 创建于原图相同的大小,储存匹配度
Mat result = Mat.zeros(source.rows(), source.cols(), CvType.CV_32FC1);
// 调用模板匹配方法
try {
Imgproc.matchTemplate(source, dst, result, matchMode); // TM_CCOEFF_NORMED
} catch (Exception e) {
throw new RuntimeException("Imgproc.matchTemplate ex:" + e.getMessage(), e);
}
// 规格化 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));
// String outpic=filex.addSuffix(sourcePath,"matched");
// 将结果输出到对应位置
// Highgui.imwrite(outpic, source);
resultRect4dbg = mat2bufImg(source);
if (matchLoc != null)
return matchLoc;
thrownewCantFindMatch(" cant find match");
}
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher kok 虔诚者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捕猎协会会长 Emir Uke部落首席大酋长,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke 首席cto 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理 uke科技研究院院长uke软件培训大师
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长
uke终身教育学校副校长 Uke医院 与医学院方面的创始人
uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任
Uke图像处理与机器视觉学院首席院长
Uke 户外运动协会理事长 度假村首席大村长 uke出版社编辑总编
转载请注明来源:attilax的专栏 ?http://blog.csdn.net/attilax
--Atiend v8
Atitti 模板匹配 Listjava.awt.Point matchTemplate(相关推荐
- 【OpenCV3】模板匹配——cv::matchTemplate()详解
模板匹配通常被用于目标检测.相似度分析中,opencv2和opencv3中提供了一个专门用于模板匹配的函数--cv::matchTemplate(),下面就对该函数进行详细的介绍. 先从一个实际的例子 ...
- 13. 模板匹配-cv2.matchTemplate()、cv2.minMaxLoc()
1. 什么是模板匹配 模板匹配,就是在整个图像区域发现与给定子图像匹配的小块区域,需要模板图像T和待检测图像-源图像S. 工作方法:在待检测的图像上,从左到右,从上倒下计算模板图像与重叠 ...
- opencv基础--图像模板匹配
参考:https://blog.csdn.net/ivanhawking/article/details/83182692(该链接附载链接有处理多目标,旋转,缩放等匹配的方法) 1.概述 图像匹配是指 ...
- 基于opencv的图片模板匹配及其简单应用
opencv的图片模板匹配及其简单应用 我的个人博客 基础知识 基于opencv的图片模板匹配 注: python及其相关包的安装不在讨论范围内 opencv提供了图片模板匹配的方法, cv2.mat ...
- android 图片特征提取比对_计算机视觉 OpenCV Android | 基本特征检测 之 模板匹配...
模板匹配的 概述 以及 使用简介模板匹配是最简单的模式识别算法之一, 其在图像处理中经常用于从一副未知图像中, 根据预先定义好的模板图像来寻找与模板图像相同或者高度相似的子图像区域. 所以模板匹配需要 ...
- opencv java match_OpenCV模板匹配函数matchTemplate详解
参考文档:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/template_matchin ...
- OpenCV3学习(8.3)模板匹配函数matchTemplate详解
opencv实现了一部分通过模板与目标图像进行寻找最佳匹配的方面matchTemplat();这个方法网上有很多讲解,基本思想是将模板图像在目标图像上滑动逐一对比,通过统计的基本方法进行匹配,比如方差 ...
- OpenCV模板匹配函数:matchTemplate()介绍
OpenCV模板匹配函数:matchTemplate()介绍
- Opencv使用cv::matchTemplate进行模板匹配
一. 使用matchTemplate函数进行图像模板匹配 什么是模板匹配? 答:模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术. 所需函数:matchTemplate 函数名: ...
- Opencv(C++)笔记--模板匹配cv::matchTemplate()和最值计算cv::minMaxLoc()
目录 1--模板匹配 1-1--OpenCV API 1-2--六种匹配方法 1-3--代码实例 2--最值计算 2-1--OpenCV API 1--模板匹配 使用模板图像与原图像进行匹配,Open ...
最新文章
- python的中文含义-python __all__ 含义
- Unity3D游戏-愤怒的小鸟游戏源码和教程(二)
- rqt teb参数动态调试工具_16.ROS常用工具:Rviz/rqt
- 免费网络研讨会:调试生产中Java的新方法
- 排队 题解 组合数学+高精度
- 苹果发布无人车安全报告,内容竟只有7页?
- php7 编译安装,添加扩展 pdo /usr/local/php/bin/phpize 发现没有 configure
- 如何在WebGL全景图上做标记
- Git:常用的命令(不断迭代完善)
- ZYNQ7020 FPGA如何从Flash启动的详细步骤
- CSS 颜色代码大全
- DD-WRT安装与配置
- 计算机每天早上自动开机,win10设置每天自动开机(电脑可以设置自动开机时间)...
- 网络云盘前端项目启动
- css transtion不生效_CSS3 Transition属性使用详解
- 一秒钟快速在PPT里插入100张图片
- it企业实习_it公司实习心得体会
- 推荐!非常好用的sql审核平台——Yearning
- bzoj 3007 拯救小云公主
- DB2 9 独霸开辟(733 磨练)认证指南,第 9 部门: 用户定义的例程(6)
热门文章
- 自定义协议_面试官:Netty如何实现自定义协议?尽量详细点
- python挑战赛怎么做trans_Python使用googletrans报错的解决方法
- 如何在scope图中标注_电机学习笔记: 变压器初级(原边)和次级(副边)的感应电动势、电压方向如何标注?...
- 深度:芸芸众司向AI进军路上的笑与泪
- github+hexo搭建博客(一)
- 读写Word的组件DocX介绍与入门
- 复制linux虚拟机后ifconfig没有出现网卡处理方法
- ANDROID中使用开源框架CITYPICKERVIEW实现省市区三级联动选择
- 垃圾文件粉碎机 防止恢复保安全
- AJAX中get与post区别