模板匹配与霍夫变换

1. 模板匹配
1.1 原理 :在给定的图片中查找和模板最相似的区域,该算法的输入包括模板和图片,以滑窗的思路不断的移动模板图片
1.2 OpenCV方法
语法 :res=cv.matchTemplate(img,template,method)
参数
(1)img:要进行模板匹配的图像
(2)template:模板
(3)method:实现模板匹配的算法,主要包含:
(3.1)平方差匹配(CV_TM_SQDIFF):利用模板与图像之间的平方差进行匹配,最好匹配是0,匹配越差,匹配的值越大
(3.2)相关匹配(CV_TM_CCORR):利用模板与图像之间的乘法进行匹配,数值越大表示匹配程度越高,越小表示匹配效果差
(3.3)利用相关系数匹配(CV_TM_CCOEFF):利用模板与图像之间的相关系数进行匹配,1表示完美的匹配,-1表示最差的匹配
注意 :完成匹配后,使用cv.minMaxLoc()方法查找最大值所在位置即可,如果使用平方差作为比较方法,则最小值位置是最佳匹配位置。
给定的图片:
在这里插入图片描述
模板图片:
在这里插入图片描述
模板匹配算法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 霍夫变换
作用 :常用来提取图像中的直线和圆等几何形状
2.1 霍夫线检测
语法 :cv.HoughLines(img,rho,theta,threshold)
参数
(1)img:待检测的图像,在霍夫变换之前首先要进行二值化或者Canny边缘检测
(2)rho,theta: θ 的精确度
(3)threshold:阈值,只有累加器中的值高于该阈值时才被认为是直线
2.1 霍夫圆检测
语法 :cv.HoughCircles(img,method,dp,minDist,param1=100,param2=100,minRadius=0,maxRadius=0)
参数
(1)img:待检测的图像,应输入灰度图
(2)method:使用霍夫变换圆检测的算法,它的参数是CV_HOUGH_GRADIENT
(3)dp:霍夫空间的分辨率,dp=1时表示霍夫空间与输入图像空间大小一致,dp=2时表示霍夫空间是输入图像空间大小的一半
(4)minDist:圆心之间的最小距离
(5)param1:边缘检测时使用Canny算子的高阈值,低阈值是高阈值的一半
(6)param2:检测圆心和确定半径时所共有的阈值
(7)minRadius,maxRadius为所检测到的圆半径的最小值和最大值

广义 霍夫 变换 在灰度图像中查找 模板 /形状 Itm 正在使用泛化 霍夫 变换 使用广义 霍夫 变换 在灰度图像(是灰度图像)中找到 模板 /形状二值图像(在二值图像Itm中给出) 是灰度图片是 模板 Itm应该找到 Itm 是 模板 的布尔边缘图像,边缘标记为 返回给出最佳 匹配 的 x,y 位置坐标 同时返回该点的得分( 匹配 点数) %x,y 是图像 Is 中的坐标,其中图像 Itm (1,1) 的左上边缘应定位以提供最佳 匹配 简介 模板 匹配 是一种高级计算机视觉方法,可检测与预定 模板 匹配 的图像部分。先进的 模板 匹配 算法检测 模板 的出现,无论其方向或局部亮度如何。在医学图像分析中,不变特征或创新应用通常用作对象识别领域,例如车辆跟踪、机器人和制造。 模板 匹配 方法用途广泛且易于应用,使其成为最常用的对象定位方法之一。它们的实用性主要受计算机容量的限制,因为识别大型复杂 模板 可能很耗时。这是一种在较大图像中搜索和定位 模板 的方法。目标是发... 模板 匹配 就是在大图中找小图,也就说在一幅图像中寻找另一幅 模板 图像的位置。 在OpenCV内, 模板 匹配 是使用函数cv2.matchTemplate()实现的。该函数的语法格式为: result=cv2.matchTemplate(image,temp1,method[,mask]) image为原始图像,必须是8位或者32位的浮点型图像。 temp1为 模板 图像。它的尺寸必须小于或等于原始图像,并且与原始图像具有同样的类型。 method为 匹配 方法。该参数通过TemplateMatchModes 所谓 模板 匹配 ,就是在给定的图片中查找和 模板 最相似的区域,该算法的输入包括 模板 和图片,整个任务的思路就是按照滑窗的思路不断的移动 模板 图片,计算其与图像中对应区域的 匹配 度,最终将 匹配 度最高的区域选择为最终的结果。 1、实现流程 (1)准备两副图像 原图像(I):在这幅图中,找到与 模板 匹配 的区域 模板 (T):与原图像进行比对的图像块 (2)滑动 模板 图像和原图像进行比对 (3)对于每一个位置将计算的相似结果保存在结果矩阵(R)中 (4)获得上述图像后,查找最大值.. 计算机视觉中经常需要识别或者定位某些几何图形,比如直线、圆、椭圆,还有其他一些图形。检测直线的 霍夫 变换 提供了在图像中寻找直线的一种算法,是最简单的一种情形,后来发展到检测圆、椭圆、还有一般图形的 霍夫 变换 。 其核心思想是把图像中属于某种图形的点集(二维)映射到一个点(可以是高维)上,这个点记录了点集中点的数目,使得程序通过搜索峰值找到该点,这个点就是后面要说到的图形的参数,而该参数的范围就 1.1 原理 所谓的 模板 匹配 ,就是在给定的图片中查找和 模板 最相似的区域,该算法的输入包括 模板 和图片,整个任务的思路就是按照滑窗的思路不断的移动 模板 图片,计算其与图像中对应区域的 匹配 度,最终将 匹配 度最高的区域选择为最终的结果。 实现流程: 准备两幅图像: 1.原图像(I):在这幅图中,找.. 打开GeoMatch_src工程,工程版本实在太老了。只能强制升级到高版本的工程文件。 此时工程属性也是缺失环境的。在解决方案管理器中右键属性-》清除掉依赖的opencv库,然后替换上自己的opencv环境(注:必须是2.xx 版本的)我这里用的是64位的2.4.10 然后编译。正常通过了。 在这个位置把我抛出来了,看了下demo中的readme。 发现是通过外部传入字符串组调用