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:
ρ
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为所检测到的圆半径的最小值和最大值



