位置: 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 有什么项目)

  • 苹果的屏幕镜像在哪里打开(苹果的屏幕镜像在哪里设置)

    苹果的屏幕镜像在哪里打开(苹果的屏幕镜像在哪里设置)

  • 网易云一起听会显示在播放列表嘛(网易云一起听会被别人看见吗)

    网易云一起听会显示在播放列表嘛(网易云一起听会被别人看见吗)

  • 荣耀x10max是什么材质的屏幕(荣耀x10max是什么屏幕材质)

    荣耀x10max是什么材质的屏幕(荣耀x10max是什么屏幕材质)

  • 微信界面变黑色了应该怎么恢复(微信界面变黑色怎么调)

    微信界面变黑色了应该怎么恢复(微信界面变黑色怎么调)

  • 微信备注长度(微信备注长度限制)

    微信备注长度(微信备注长度限制)

  • ipad无法创建账户(创建ipad账户提示无法创建账户)

    ipad无法创建账户(创建ipad账户提示无法创建账户)

  • 微信拍视频怎么美颜(微信拍视频怎么不保存相册)

    微信拍视频怎么美颜(微信拍视频怎么不保存相册)

  • wps段落布局按钮隐藏了怎么出来(wps段落布局按钮怎么设置)

    wps段落布局按钮隐藏了怎么出来(wps段落布局按钮怎么设置)

  • p30如何设置屏幕常亮(p30pro如何设置屏幕)

    p30如何设置屏幕常亮(p30pro如何设置屏幕)

  • 小天才电话手表能发短信吗(小天才电话手表充不进去电是怎么回事)

    小天才电话手表能发短信吗(小天才电话手表充不进去电是怎么回事)

  • 华为手机如何无线充电(华为手机如何无线连接电脑)

    华为手机如何无线充电(华为手机如何无线连接电脑)

  • 微信显示一条未读却找不到(微信显示一条未读)

    微信显示一条未读却找不到(微信显示一条未读)

  • 抖音能调亮度吗(抖音怎么把亮度调低)

    抖音能调亮度吗(抖音怎么把亮度调低)

  • 链信的实名认证有风险吗(链信实名注册的危害)

    链信的实名认证有风险吗(链信实名注册的危害)

  • windows是安卓系统吗(安卓系统属于微软吗)

    windows是安卓系统吗(安卓系统属于微软吗)

  • mate30多大屏幕尺寸(mate30多少寸屏幕)

    mate30多大屏幕尺寸(mate30多少寸屏幕)

  • 天猫魔屏m1怎么连接手机(天猫魔屏m1怎么转hdmi)

    天猫魔屏m1怎么连接手机(天猫魔屏m1怎么转hdmi)

  • 抖音里未上传的咋删除(抖音未上传的视频怎么查)

    抖音里未上传的咋删除(抖音未上传的视频怎么查)

  • 笔记本亮度最高了怎么还是暗的(笔记本亮度最高了但屏幕亮度不够)

    笔记本亮度最高了怎么还是暗的(笔记本亮度最高了但屏幕亮度不够)

  • x为什么无线充电发热(苹果x无线充电慢是什么原因)

    x为什么无线充电发热(苹果x无线充电慢是什么原因)

  • iphone11和11pro尺寸(iPhone11和11Pro尺寸)

    iphone11和11pro尺寸(iPhone11和11Pro尺寸)

  • 金立手机老是弹出广告怎么消除(金立手机老是弹出应用程序错误)

    金立手机老是弹出广告怎么消除(金立手机老是弹出应用程序错误)

  • word如何删除脚注(word如何删除脚注上方的横线)

    word如何删除脚注(word如何删除脚注上方的横线)

  • 监控设备离线怎样恢复(监控设备离线怎么回事儿)

    监控设备离线怎样恢复(监控设备离线怎么回事儿)

  • 如何在Windows 11中映射网络驱动器(如何在Windows 11上卸载更新)

    如何在Windows 11中映射网络驱动器(如何在Windows 11上卸载更新)

  • 减资需要交个税吗
  • 酒店物业费收取标准2019
  • 小微小型微利企业减按20%的所得税税率征收企业所得税
  • 年终奖分摊到每个月
  • 现金流量表季度申报可以不填吗
  • 地价计入房产原值公式
  • 红字发票重复提交了数据该怎么处理
  • 政府会计制度银行存款利息咋处理
  • 临时员工和正式员工区别
  • 外贸公司有国企吗
  • 付给总机构的管理费可以税前扣除吗
  • 收到托收凭证怎么填写
  • 湖南残保金减免优惠政策2020
  • 结转库存什么意思
  • 个体工商户年末计提的工资,次年怎么算
  • 上海2018房产税实施细则
  • 电脑变成代码打不开怎么办
  • 土地成本费用包括什么
  • 材料报废的会计处理(一般纳税人)
  • 运输公司购买机票怎么买
  • 腾讯电脑管家帮忙卸载
  • 用后期进项抵欠怎么做账
  • phpcms手册
  • 现金日记账漏记一笔怎么办
  • fssm32.exe是什么进程 有什么作用 fssm32进程查询
  • php实现微信发红包的方法
  • 认缴制下实收资本需要验资吗
  • css去掉项目符号
  • 行政单位捐赠会计分录怎么做的
  • 月底结转汇兑损益
  • dac模型
  • 数字图像处理实验一实验报告
  • css中文字垂直排列
  • 反向选择命令
  • php7 nginx
  • 公司资金转到法人帐户
  • 为什么计入资本公积
  • mysql联合索引使用规则
  • vue2响应式原理面试回答
  • 一般纳税人申报表电子版
  • 投资性公司怎么做账
  • 职工教育经费可以冲回吗
  • 工程施工的间接费用年底可以不结转吗
  • 库存现金的主要内容有哪些
  • 计提折旧是哪个月的
  • 工程进度款如何做账
  • 营利性养老机构有补贴吗
  • 新会计准则贷款计提贷款减值准备的比例
  • 企业有进项税额,无销项税额
  • 减免税做营业外收入的会计分录
  • 材料采购发票未到
  • 确认收入后销售怎么算
  • 企业运营工资
  • 防伪税控技术维护费
  • 复利终值与现值的关系
  • 期后事项的分类及处理原则
  • mysql版本信息
  • windows ssh-keygen
  • windows命令操作
  • win7系统开机蓝屏怎么修复
  • xp系统如何清理缓存
  • linux查inode
  • Solaris 10 Openssh安装和配置
  • solaris 安装
  • centos配置http
  • Linux /bin, /sbin, /usr/bin, /usr/sbin 区别
  • dghm.exe是什么程序
  • windows xp系
  • win7系统打印机共享给win10
  • win8系统如何关闭杀毒系统
  • 塔防游戏二战
  • 详细说明什么是支撑
  • 批处理计算的特点
  • 希尔排序数据结构的代码
  • python在windows
  • js中的tostring方法
  • python socket用法
  • python 解析算法
  • 滴滴收入统计
  • 宁波购房契税退税条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设