当前位置: 首页 > wzjs >正文

临沂网站制作网站推广app

临沂网站制作,网站推广app,集约化网站群建设内容,响应式网站特点文章目录 一、模板匹配1、什么是模板匹配?2、原理 二、单模板匹配(代码实现)1、预处理2、 开始模板匹配并绘制匹配位置的外接矩形 三、多模板匹配(代码实现)1、读取图片和模板2、模板匹配3、设置阈值1)阈值…

文章目录

  • 一、模板匹配
    • 1、什么是模板匹配?
    • 2、原理
  • 二、单模板匹配(代码实现)
    • 1、预处理
    • 2、 开始模板匹配并绘制匹配位置的外接矩形
  • 三、多模板匹配(代码实现)
    • 1、读取图片和模板
    • 2、模板匹配
    • 3、设置阈值
      • 1)阈值设置原理:
      • 2)threshold=0.9
      • 3)loc = np.where(res >= threshold)
      • 4)for pt in zip(*loc[::-1]):  cv2.rectangle(img_rgb,pt,(pt[0]+w,pt[1]+h),(0,0,255),1)
    • 4、运行结果


一、模板匹配

1、什么是模板匹配?

模板匹配是OpenCV中的一种图像处理技术,用于在一幅图像中查找与给定模板或样本图像最相似的区域。

2、原理

为了识别匹配区域,我们必须通过滑动来将模板图像与源图像进行比较:
一次移动一个像素(从左到右,从上到下)。在每个位置,都会计算一个度量(度量计算公式),以便它表示该位置的匹配“好”或“坏”程度。
在这里插入图片描述
模板从图片的左上角逐一进行匹配,针对每一个匹配位置(位置坐标是模板左上角坐标),都会根据 matchTemplate()函数设置的计算方法得到一个对应的得分值,不同的匹配方法数值大小的效果是不同的,找到最优的匹配结果返回。

函数API:
cv2.matchTemplate(image, templ, method, result=None, mask=None)

  • image:待搜索图像
  • templ:模板图像
  • method:计算匹配程度的方法,可以有:
  • TM_SQDIFF 平方差匹配法:该方法采用平方差来进行匹配;匹配越好,值越小;匹配越差,值越大。
  • TM_CCORR 相关匹配法:该方法采用乘法操作;数值越大表明匹配程度越好。
  • TM_CCOEFF 相关系数匹配法:数值越大表明匹配程度越好。
  • TM_SQDIFF_NORMED 归一化平方差匹配法,匹配越好,值越小;匹配越差,值越大。
  • TM_CCORR_NORMED 归一化相关匹配法,数值越大表明匹配程度越好。
  • TM_CCOEFF_NORMED 归一化相关系数匹配法,数值越大表明匹配程度越好。
  • 返回匹配结果的矩阵,其中每个元素表示该位置与模板的匹配程度

二、单模板匹配(代码实现)

1、预处理

kele = cv2.imread('kele.png')
template = cv2.imread('template.png')
cv2.imshow('kele',kele)
cv2.imshow('template',template)
cv2.waitKey(0)

在这里插入图片描述

2、 开始模板匹配并绘制匹配位置的外接矩形

h, w = template.shape[:2]
res = cv2.matchTemplate(kele, template, cv2.TM_CCOEFF_NORMED)   #返回匹配结果的矩阵,其中每个元素表示该位置与模板的匹配程度
# cv2.minMaxLoc可以获取矩阵中的最小值和最大值,以及最小值的索引号和最大值的索引号
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)  # 最小值、最大值、最小值位置、最大值位置
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
kele_template = cv2.rectangle(kele, top_left, bottom_right, (0, 255, 0), 2)  # 绘制矩形cv2.imshow('kele_template', kele_template)
cv2.waitKey(0)

在这里插入图片描述


三、多模板匹配(代码实现)

模板:
在这里插入图片描述

原图:
在这里插入图片描述

1、读取图片和模板

img_rgb=cv2.imread('image.jpg')
img_gray=cv2.cvtColor(img_rgb,cv2.COLOR_BGR2GRAY)
template=cv2.imread('tem.jpg',0)
h,w=template.shape[:2]

2、模板匹配

def find_temp(temp):res=cv2.matchTemplate(img_gray,temp,cv2.TM_CCOEFF_NORMED)threshold=0.9loc=np.where(res>=threshold)for pt in zip(*loc[::-1]):cv2.rectangle(img_rgb,pt,(pt[0]+w,pt[1]+h),(0,0,255),1)find_temp(template)cv2.imshow('', img_rgb)
cv2.waitKey(0)

3、设置阈值

1)阈值设置原理:

在进行多对象匹配时,常常要设置阈值保证能够完全框选到对象,当阈值设置为0.9时,所有满足大于0.9的外接矩形都会被绘制出来,如果这个阈值数据设置的更小,那么符合条件的位置就越多,表现在图上的特征就是有更多的框,框的线更粗。

2)threshold=0.9

设定匹配阈值,表示匹配的相似度范围。

3)loc = np.where(res >= threshold)

获取匹配结果中所有符合阈值的点的坐标,返回索引,这里返回的是y值和x值坐标信息,条件为大于设定阈值的值的索引。

4)for pt in zip(*loc[::-1]):  cv2.rectangle(img_rgb,pt,(pt[0]+w,pt[1]+h),(0,0,255),1)

  • loc数据倒序排列,变成x,y顺序状态,zip(*)表示将可迭代对象中对应的元素打包成一个元组,这里表示返回每个点的坐标。
  • 在原图上绘制匹配区域的矩形框,pt表示矩形左上角坐标,(pt[0]+w,pt[1]+h)表示右下角坐标。

4、运行结果

在这里插入图片描述


http://www.dtcms.com/wzjs/65472.html

相关文章:

  • 建设部质监局信息查询官方网站网站seo思路
  • 手机网站一般做多大尺寸市场运营和市场营销的区别
  • 网站建设业务长春建站服务
  • 微信一键登录网站怎么做指数基金排名前十名
  • 中介如何做网站收客南宁网站建设服务公司
  • win xp 个人网站免费建设搜索引擎平台排名
  • 贵阳网站建设公司排名何鹏seo
  • 规划阿里巴巴网站怎么做郑州专业网站建设公司
  • 网页设计毕业论文题目有哪些重庆seo杨洋
  • 北京高端网站开发搜什么关键词你都懂的
  • 网站建设费入如保入账推广普通话文字素材
  • 做词云的在线网站营销型网页设计
  • html教程书如何做谷歌seo推广
  • 网站怎么做图片动态图片不显示了建立个人网站
  • 好看的网站排版陕西seo公司
  • 设计公司灰白色调网站建网站的软件
  • 软件做网站汕头网站推广
  • 做网站需要提供什么资料百度怎么发布自己的信息
  • 做著名建筑物网站简介免费培训课程
  • 建设银行官方网站下载海外免费网站推广
  • 网站建设动画教程百度竞价排名怎么靠前
  • 旅游网网站建设的管理seo教程seo优化
  • 建成区违法建设治理网站淘特app推广代理
  • 企业网站是企业在互联网上进行网络营销深圳市网络营销推广服务公司
  • 做网站的注意点搜狗整站优化
  • 网站开发需要客户做什么广告
  • 网站建设怎么挣钱app制作一个需要多少钱
  • html5 css3手机网站济宁百度推广开户
  • 建设部网站是什么网站酒店seo是什么意思
  • 产品质量推广营销语赣州seo公司