位置: IT常识 - 正文

【OpenCV--模板匹配】(opencv模板匹配原理)

编辑:rootadmin
【OpenCV--模板匹配】

目录

一、模板匹配

1.定义:

2.实现:

二、霍夫线检测

1.原理:

2.实现:

 三、霍夫圆检测

1.描述:

2.用法:

一、模板匹配1.定义:

推荐整理分享【OpenCV--模板匹配】(opencv模板匹配原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opencv模板匹配原理,opencv 模板匹配得到坐标和角度,opencv 模板匹配得到坐标和角度,opencv 模板匹配得到坐标和角度,opencvsharp模板匹配,opencv 模板,opencv模板匹配算法改进,opencv模板匹配原理,内容如对您有帮助,希望把文章链接给更多的朋友!

模板匹配就是在给定的图片中,查找和模板最相似的区域,算法的输入包括模板和图片,通过不断移动模板图片,计算其与图片对应区域匹配度,将匹配度最高区域选择为最终结果

2.实现:

result=cv.matchTemplate( img,template,method)

参数:

1>template :模板 2>method: 实现模板匹配的算法,主要有: 1.平方差匹配(CV_TM_SQDIFF):利用模板与图像之间的平方差进行匹配,最好的匹配是0,匹配越差,匹配的值越大。 2.相关匹配(CV_TM_CCORR):利用模板与图像间的乘法进行匹配,数值越大表示匹配程度较高,越小表示匹配效果差。 3.利用相关系数匹配(CV_TM_CCOEFF):利用模板与图像间的相关系数匹配,1表示完美的匹配,-1表示最差的匹配。

注意:完成匹配后,使用cv.minMaxLoc()方法查找最大值所在的位置即可,如果使用平方差作为比较方法,则最小值位置是最佳匹配位置。

import numpy as npimport matplotlib.pyplot as pltimport cv2 as cvimg=cv.imread('snow.jpg')#plt.imshow(img[:,:,::-1])#plt.show()template=cv.imread('snow1.jpg')h,w=template.shape[:2]result=cv.matchTemplate(img,template,cv.TM_CCORR)min_val,max_val,min_loc,max_loc=cv.minMaxLoc(result)top_left=max_locbottom_right=(top_left[0]+w,top_left[1]+h)cv.rectangle(img,top_left,bottom_right,(0,255,0),2)#设置颜色与宽度plt.imshow(img[:,:,::-1])plt.show()

 

二、霍夫线检测1.原理:

霍夫变换常用来提取图像中的直线和圆等几何图形,霍夫空间中的一条线对应笛卡尔坐标系中一个点:

【OpenCV--模板匹配】(opencv模板匹配原理)

笛卡尔坐标系中两个点,对应霍夫空间一条直线

在霍夫空间内,经过一个点的直线越多,说明其在笛卡尔空间内映射的直线是由越多的点所构成,在笛卡尔空间中,可能存在斜率为无穷的直线,此时就需要采用极坐标

2.实现:

cv.HoughLines(img,rho,theta,threshold)

参数:

img:检测的图像,要求是二值化的图像,所以在调用霍夫变换之前首先要迸行二值化,或者迸行Canny边缘检测 rho、theta: 两个角度的精确度 threshold:阈值,只有累加器中的值高于该阈值时才被认为是直线

import numpy as npimport matplotlib.pyplot as pltimport cv2 as cvimg=cv.imread("straight.jpg")edges=cv.Canny(img,50,200)#plt.imshow(edges,cmap=plt.cm.gray)#plt.show()lines=cv.HoughLines(edges,0.8,np.pi/180,100)for line in lines: rho,theta=line[0] a=np.cos(theta) b=np.sin(theta) x0=rho*a y0=rho*b x1=int(x0+1000*(-b)) y1=int(y0+1000*a) x2=int(x0-1000*(-b)) y2=int(y0-1000*a) cv.line(img,(x1,y1),(x2,y2),(0,0,255))plt.imshow(img[:,:,::-1])plt.show()

 三、霍夫圆检测1.描述:

OpenCV采用霍夫梯度法将霍夫圆检测范围两个阶段,第一阶段检测圆心,第二阶段利用圆心推导出圆圆心检测的原理:圆心是圆周法线的交汇处,设置-一个阈值,在某点的相交的直线的条数大于这个阈值就认为该交汇点为圆心。 圆半径确定原理:圆心到圆周上的距离(半径)是相同的,确定- 个阈值,只要相同距离的数量大 于该阈值,就认为该距离是该圆心的半径。

2.用法:

circles=cv.HoughCircles(image,method,dp,minDist,param1=100,param2=100,minRadius=0,maxRadius=0)

参数:

1>method: 使用霍夫变换圆检测的算法,它的参数是CV_ HOUGH_ GRADIENT 2>dp:霍夫空间的分辨率,dp=1时表示霍夫空间与输入图像空间的大小一致, dp=2时霍夫空间是输入图像空间的一半,以此类推 3>minDist为圆心之间的最小距离,如果检测到的两个圆心之间距离小于该值,则认为它们是同一个圆心 4>param1: 边缘检测时使用Canny算子的高阈值,低阈值是高阈值的一半 5>param2: 检测圆心和确定半径时所共有的阈值 6>minRadius和maxRadius为所检测到的圆半径的最小值和最大值

import numpy as npimport matplotlib.pyplot as pltimport cv2 as cvimg=cv.imread("straight.jpg")img1=cv.cvtColor(img,cv.COLOR_BGR2GRAY)img2=cv.medianBlur(img1,7)#plt.imshow(img2,cmap=plt.cm.gray)#plt.show()circles=cv.HoughCircles(img2,cv.HOUGH_GRADIENT,1,200,param1=100,param2=50,minRadius=0,maxRadius=100)circle1=circles[0, :, :]circle1=np.uint16(np.around(circle1))for c in circle1[:]: cv.circle(img,(c[0],c[1],c[2],(0,0,255),2)) cv.circle(img,(c[0],c[1],c[2],(0,0,255),-1))plt.imshow(img[:,:,::-1])plt.show()
本文链接地址:https://www.jiuchutong.com/zhishi/299454.html 转载请保留说明!

上一篇:【Web前端】CSS-盒子模型(web前端 css)

下一篇:计算机视觉-OpenCV入门讲解(计算机视觉opencv 有什么项目)

  • qq群主如何设置管理员(qq群主如何设置群内禁止加人)

    qq群主如何设置管理员(qq群主如何设置群内禁止加人)

  • WPS页面宽度高度怎么设置(wps页面宽度高度怎么调)

    WPS页面宽度高度怎么设置(wps页面宽度高度怎么调)

  • 畅联语音什么意思(畅联语音是咋回事)

    畅联语音什么意思(畅联语音是咋回事)

  • oppoa5导航键怎么设置(oppoa5手机导航键)

    oppoa5导航键怎么设置(oppoa5手机导航键)

  • 京东退货被拒绝怎么办(京东退货拒绝后再次退货)

    京东退货被拒绝怎么办(京东退货拒绝后再次退货)

  • 苹果4s下载微信不兼容怎么办(苹果4s下载微信ios6.0版本)

    苹果4s下载微信不兼容怎么办(苹果4s下载微信ios6.0版本)

  • 苹果手表5代防水等级(苹果手表5防水等级)

    苹果手表5代防水等级(苹果手表5防水等级)

  • 更新miui12会清除数据吗(miui12.5升级会清除数据吗)

    更新miui12会清除数据吗(miui12.5升级会清除数据吗)

  • 3d打印技术是什么意思(3D打印技术是什么原理)

    3d打印技术是什么意思(3D打印技术是什么原理)

  • 闲鱼支持七天无理由退货吗(闲鱼支持7天)

    闲鱼支持七天无理由退货吗(闲鱼支持7天)

  • 华为手机扬声器有杂音(华为手机扬声器在哪里打开)

    华为手机扬声器有杂音(华为手机扬声器在哪里打开)

  • 钉钉能同时在电脑和手机上用吗

    钉钉能同时在电脑和手机上用吗

  • 华硕bios关闭节能模式(华硕bios怎么关机)

    华硕bios关闭节能模式(华硕bios怎么关机)

  • 快手怎么清屏

    快手怎么清屏

  • 无线网5ghz和2.4ghz有什么区别(无线网5ghz和2.4ghz5g可以连几个设备)

    无线网5ghz和2.4ghz有什么区别(无线网5ghz和2.4ghz5g可以连几个设备)

  • 苹果x快充支持哪个标准(苹果x快充支持多少)

    苹果x快充支持哪个标准(苹果x快充支持多少)

  • 升级显卡有什么用(显卡升级用什么)

    升级显卡有什么用(显卡升级用什么)

  • 华为m6怎么接u盘(华为m6插u盘没反应)

    华为m6怎么接u盘(华为m6插u盘没反应)

  • cmiit id是指什么(cmlit id)

    cmiit id是指什么(cmlit id)

  • qq浏览器私密在哪查看(qq浏览器中的私密空间在哪里)

    qq浏览器私密在哪查看(qq浏览器中的私密空间在哪里)

  • steam换手机了怎么办(steam换手机了怎么改)

    steam换手机了怎么办(steam换手机了怎么改)

  • red摄影机所有型号(red摄影机)

    red摄影机所有型号(red摄影机)

  • ios掌阅怎么导入本地(苹果掌阅如何导入)

    ios掌阅怎么导入本地(苹果掌阅如何导入)

  • 115怎么下载bt文件(115网盘怎么下载bt文件)

    115怎么下载bt文件(115网盘怎么下载bt文件)

  • 钉钉在哪里查工资信息(钉钉在哪里查工作证)

    钉钉在哪里查工资信息(钉钉在哪里查工作证)

  • vivov1813a是哪款手机(vivov1813a是什么手机多少钱)

    vivov1813a是哪款手机(vivov1813a是什么手机多少钱)

  • 微服务网关Gateway实践总结(微服务网关作用)

    微服务网关Gateway实践总结(微服务网关作用)

  • 免征增值税的项目如何开发票
  • 收到的税费返还应在支付的税费项目中扣除判断题
  • 办房产证的完税证明是什么
  • 不动产增值税税率变化
  • 小规模免收增值税的收入范围
  • 费用化的研发支出是否可以加计扣除
  • 财务软件无形资产摊销几年
  • 固定资产超过注册资金怎么处理
  • 纳税调减事项有
  • 多缴所得税返还现金流
  • 材料采购做账的流程
  • 未开发票收入交增值税怎么做账?
  • 公司购买短期理财现金流量表怎么填
  • 有单位购买我公司开发的房产作为“投资性房地产”,该单位需要缴纳房产税吗?
  • 所得税计税方法
  • 供应商退回货款有时间限制吗
  • 联营企业分回的利润交企业所得税吗
  • 小规模纳税人医院免增值税吗
  • 汽车折旧计算方法按照公里
  • 进口增值税13可以抵扣多少
  • 小规模纳税人含500万吗
  • 销售技巧培训课程
  • 清华同方bios通用密码(thtfpc)
  • 金蝶k3外购入库单套打设置
  • 净现值是否可行
  • 开发票没有银行回单可以入帐吗?
  • 五险会计分录会计处理
  • 现金日记账余额为零要怎么填
  • 一般纳税人销售二手车增值税税率
  • php?ms=0&qgg=&_wv=3
  • ecshop怎么用
  • bootice.exe
  • pavmail.exe - pavmail进程是什么文件 有什么用
  • 按揭贷款到账时间
  • 工程施工科目借贷方向
  • 出租厂房代收的水电费如何账务处理
  • msqry32.exe进程是什么文件 作用是什么 msqry32进程查询
  • 购买加油卡能否抵扣
  • 怎么计提企业所得税
  • 小规模纳税人是否可以开专票
  • php的header函数
  • yolov5目标检测代码
  • 模糊数学神经网络
  • 中标费用由哪方出
  • 子公司使用母公司固定资产
  • 帝国cms wordpress
  • 工伤医疗费必须要交吗
  • 向投资者分配现金股利为什么会导致所有者权益减少?
  • mysql where join
  • 未分配利润分配后在报表如何体现
  • 以前年度多交增值税账务处理
  • sql扩展
  • 新会计制度固定资产折旧账务处理
  • 代收会计分录
  • 外贸企业留抵退税申请表怎么填
  • 外包人员的餐费怎么入账
  • 查看mysql执行sql日志内容
  • mysql数据库innodb
  • ubuntu常用的50个命令
  • 怎么隐藏不让别人发现
  • win10升级失败怎么办
  • win8怎么设置用户头像
  • Coroutine couldn't be started because the the game object 'GameController' is inactive!
  • 深入解析抑郁症:什么是它的表现?别小看它的危害程度!
  • ExtJS扩展 垂直tabLayout实现代码
  • css怎么设置表单居中
  • web开发css
  • linux中mysql备份shell脚本代码
  • jquery给复选框赋值
  • 短信发送器
  • js删除li
  • android应用程序的主要语言是
  • javascript教程代码
  • ApplicationId与PackageName的区别
  • jquery的gt
  • 房子总额70万首付多少
  • 个体户开票怎么开步骤
  • 污水处理厂房产税优惠政策
  • 个人所得税选择那种方式更好
  • 广州哪里有餐饮费发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设