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

php网站开发平台中山顺德网站建设

php网站开发平台,中山顺德网站建设,海南网,广州汽车网络推广服务一、 概念 模板匹配就是用模板图(通常是一个小图)在目标图像(通常是一个比模板图大的图片)中不断的滑动 比较,通过某种比较方法来判断是否匹配成功。 二、应用场景 1. 目标检测与识别:在计算机视觉领域&am…

一、 概念

        模板匹配就是用模板图(通常是一个小图)在目标图像(通常是一个比模板图大的图片)中不断的滑动 比较,通过某种比较方法来判断是否匹配成功。

 二、应用场景

1. 目标检测与识别:在计算机视觉领域,模板匹配常用于目标检测与识别。 通过提前准备好的模板图像,可以在输入图像或视频流中识别出具有相似 特征的目标物体,从而实现目标检测与识别。

2. 视频分析与目标跟踪:在视频分析中,模板匹配可用于实现目标物体的跟 踪与追踪。借助模板匹配算法,可以在视频序列中追踪目标物体的运动轨 迹,实现目标跟踪功能。

 三、匹配方法

3.1、平方差匹配TM_SQDIFF

        以模板图与目标图所对应的像素值使用平方差公式来计算,其结果越小,代表匹配程度越高。

3.2、归一化平方差匹配TM_SQDIFF_NORMED

        与平方差匹配类似,只不过需要将值统一到0到1,计算结果越小,代表匹配程度越高

3.3、相关匹配TM_CCORR

        使用对应像素的乘积进行匹配,乘积的结果越大其匹配程度越高

3.4、归一化相关匹配TM_CCORR_NORMED

        与相关匹配类似,只不过是将其值统一到0到1之间,值越大,代表匹配程度越高

3.5、相关系数匹配TM_CCOEFF

        需要先计算模板与目标图像的均值,然后通过每个像素与均值之间的差的乘积再求和来表示其匹配程 度,1表示完美的匹配,-1表示最差的匹配

3.6、归一化相关系数匹配TM_CCOEFF_NORMED

        也是将相关系数匹配的结果统一到0到1之间,值越接近1代表匹配程度越高

四、绘制轮廓 

 导入模块

import cv2
import numpy as np

输入图像

img = cv2.imread('mali.png')
img_template = cv2.imread('jinbi.png')

灰度化

img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_template_gray = cv2.cvtColor(img_template, cv2.COLOR_BGR2GRAY)

模板匹配

res = cv2.matchTemplate(img_gray, img_template_gray, cv2.TM_CCOEFF_NORMED)

 筛选数据

threshold = 0.73
location = np.where(res > threshold)

绘制轮廓

for i in zip(*location[::-1]):right_bottom = (i[0] + w, i[1] + h)cv2.rectangle(img, i, right_bottom, (0, 0, 255))

 输出图像

cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

完整代码

import cv2  
import numpy as np  # 读取原始图像  
img = cv2.imread('mali.png')  # 读取模板图像  
img_template = cv2.imread('jinbi.png')  # 将原始图像转换为灰度图像  
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 将模板图像转换为灰度图像  
img_template_gray = cv2.cvtColor(img_template, cv2.COLOR_BGR2GRAY)  # 获取模板灰度图像的高度(h)和宽度(w)  
h, w = img_template_gray.shape  # 在原始灰度图像中执行模板匹配  
res = cv2.matchTemplate(img_gray, img_template_gray, cv2.TM_CCOEFF_NORMED)  # 设置匹配的阈值,只有大于该值的匹配才会被考虑  
threshold = 0.73  # 找到所有匹配结果的位置  
location = np.where(res > threshold)  # 在每个匹配位置绘制矩形框  
for i in zip(*location[::-1]):  # 反转位置元组(从列开始)  right_bottom = (i[0] + w, i[1] + h)  # 计算矩形的右下角坐标  cv2.rectangle(img, i, right_bottom, (0, 0, 255), thickness=2)  # 绘制红色矩形框  # 显示带有矩形框的图像  
cv2.imshow('img', img)  # 等待用户按键  
cv2.waitKey(0)  # 关闭所有OpenCV窗口  
cv2.destroyAllWindows()  

疑难解读

np.where(res > threshold)

        np.where 返回的是一个包含多维数组索引的元组。对于二维图像(如模板匹配的结果),返回的 location 是一个元组,包含两个数组:一个是所有行坐标,一个是所有列坐标。

zip(*location[::-1])

        location[::-1]:
        这个操作是用来反转元组的顺序。元组的格式是 (行数组, 列数组),反转之后会成为 (列数组, 行数组),这样做是为了确保接下来的 zip 操作可以正确地将坐标组合成元组。

        zip(*location[::-1]):
        zip 函数用于将多个可迭代对象的元素组合成元组。在这里,* 运算符用于解包 location[::-1],把反转后的元组传入到 zip 函数中。

五、库函数

5.1、matchTemplate()

cv.matchTemplate(	image, templ, method[, result[, mask]]	) ->	result
方法描述
image运行搜索的图像。它必须是 8 位或 32 位浮点。
templ搜索到的模板。它必须不大于源图像,并且具有相同的数据类型。
result比较结果的映射。它必须是单通道 32 位浮点
method指定比较方法的参数,请参阅 TemplateMatchModes
mask可选掩码。它的大小必须与 templ 相同。它必须具有与模板相同的通道数,或者只有一个通道,然后用于所有模板和图像通道。如果数据类型为 CV_8U,则掩码将被解释为二进制掩码,这意味着仅使用 mask 为非零的元素,并且这些元素保持不变,与实际掩码值无关(权重等于 1)。对于数据 tpye CV_32F,掩码值用作权重。确切的公式记录在 TemplateMatchModes 中。
Enumerator
TM_SQDIFF 
Python: cv.TM_SQDIFF
TM_SQDIFF_NORMED 
Python: cv.TM_SQDIFF_NORMED
TM_CCORR 
Python: cv.TM_CCORR
TM_CCORR_NORMED 
Python: cv.TM_CCORR_NORMED
TM_CCOEFF 
Python: cv.TM_CCOEFF
TM_CCOEFF_NORMED 
Python: cv.TM_CCOEFF_NORMED

5.2、np.where() 

        numpy.where 是 NumPy 库中的一个非常有用的函数,它可以根据指定的条件返回 满足该条件的元素的索引。

        当 numpy.where 接受一个条件作为参数时,它会返回一个元组,其中包含满足该条 件的元素的索引。

numpy.where(condition)
函数说明
condition一个布尔数组或条件表达式。
返回值
一个元组,其中包含满足条件的元素的索引。

详情查看 

Python----数据分析(Numpy四:广播机制,数组的运算,统计计算,where函数)_数组广播-CSDN博客


文章转载自:

http://DLAVhu5b.gwxwL.cn
http://WXqabv0d.gwxwL.cn
http://IyoDXYfp.gwxwL.cn
http://T9OML08R.gwxwL.cn
http://FPIoUyW8.gwxwL.cn
http://hBlZhtMS.gwxwL.cn
http://xGzvITuf.gwxwL.cn
http://E7dmambW.gwxwL.cn
http://8CxkFqZO.gwxwL.cn
http://vSw4AavL.gwxwL.cn
http://K8MkjAUX.gwxwL.cn
http://KVMysKVi.gwxwL.cn
http://rpGZzE3u.gwxwL.cn
http://dpIJjkY9.gwxwL.cn
http://gzmJDjMF.gwxwL.cn
http://PZKT8j6G.gwxwL.cn
http://B6PPyMb3.gwxwL.cn
http://KdrqgEb6.gwxwL.cn
http://xjS1VNBD.gwxwL.cn
http://4uBRP8u6.gwxwL.cn
http://rMULwVq7.gwxwL.cn
http://KpDC9DPz.gwxwL.cn
http://KXOpeKai.gwxwL.cn
http://NRIpaDdo.gwxwL.cn
http://6NE0QZk9.gwxwL.cn
http://nXzjkCEH.gwxwL.cn
http://8EoCa1sy.gwxwL.cn
http://5DwlygK3.gwxwL.cn
http://4h6K9g2w.gwxwL.cn
http://JZDvN8mc.gwxwL.cn
http://www.dtcms.com/wzjs/678245.html

相关文章:

  • 大淘客构建自己的网站深圳ui设计师工资
  • 登陆注册是静态网站动画专业大学
  • 影视传媒网站源码网站开发需要看相关书籍
  • 网站管理助手ftp连接不上加盟网站建设
  • 企业网站建站系统哪个好用创建自己网站的步骤
  • 电商网站的内容设计网页设计软件免费下载
  • 韩国网站 后缀高水平的网站建设
  • 网站后台用什么语言网站云推广
  • html网站标签网站模板怎么做
  • 零基础学习做网站求职网站
  • 免费模板整站优化 快速排名
  • 企业网站seo 优帮云西部数码里面如何建设自己的网站
  • 免费做视频相册的网站网站设计公司飞沐
  • 东莞网站公司小说网站排名怎么做
  • 面对面视频 网站开发企业网站建设的实践意义
  • 扁平化的网站结构图营销型网站建设和规划
  • 软件公司网站源码seo公司赚钱吗
  • 国家企业官方网站查询系统如何进入一个网站开发人员工具
  • 郑州做个人网站的公司wordpress cue插件下载
  • 同个主体新增网站备案如何自学软件开发
  • 郫县网站建设上海网页设计师培训班
  • 深圳创建网站房地产行业网站开发
  • 北京市专业网站制作企业赣州是哪个省
  • 创建网站制作首页做网站推广运营前景
  • 网站列表页怎么做的条形码怎么做网页
  • discuz做网站如何做网站百科
  • 哪里有做网站公司的黄浦网站建设推广
  • 昆明 网站建设兼职湖南省建设厅政务中心网站
  • cms网站模板seo81
  • 白酒网站建设调查网站做调查不容易过