[视频]【图像处理】基于python的模版匹配算法
更新:2024-04-02 08:24:11自创经验
本文来学习模版匹配的初等方法。从大图里面裁剪出一个小图片,然后要求在大图里面标注出小图的位置。
工具/原料
电脑pythonopencv模块方法/步骤
1/6分步阅读给定大图,截取小图,并读取图片。
import cv2
img=cv2.imread('0.png')
pic=cv2.imread('1.png')
请点击图片,查看大图效果。


如果把图片直接读取为灰度图,可以节省计算时间:
import cv2
img=cv2.imread('0.png',0)
pic=cv2.imread('1.png',0)
原图是没有右下角的水印的。


这里只给出模版匹配的最初等的方法,把模版放到原图,逐点移动,直到找准最佳匹配位置。
先给出一个计数器,用来记录不同位置的匹配效果。
import numpy as np
u,v=img.shape[:2]
p,q=pic.shape[:2]
c=np.zeros((u-p,v-q))

用for循环进行匹配:
for i in range(u-p):
for j in range(v-q):
n=img[i:p+i,j:q+j]-pic
n=np.sum(n**2)
c[i,j]=n
这个过程用时间比较长,多达100秒。

计数器里面,最小值的位置,就是最佳匹配位置。
上图中有一个黑色点,就是最佳匹配点。
for i in range(u-p):
for j in range(v-q):
if c[i,j]==np.min(c):
print(i,j)

在原图中标注出模版的位置:
img=cv2.imread('0.png')
cv2.rectangle(img,(50,201),(50+q,201+p),(0,0,255),2)
cv2.imwrite('4.jpg',img)

编辑于2019-01-17,内容仅供参考并受版权保护
经验备注
我发现了这篇经验很有用:你也认同《【图像处理】基于python的模版匹配算法》的经验分享有价值,就请和朋友们一起分享吧。另外,【图像处理】基于python的模版匹配算法的经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。经验知识实用生活指南-解决你所有的生活难题!未经许可,谢绝转载。本文网址:https://www.5058.cn/article/2d5afd69066d6885a2e28ed8.html
手工/爱好经验推荐
- Q[视频]微信被拉黑了发消息过去会怎么显示
- Q原创如何简单在鸡蛋上面画画
- Q求学习教你五线谱简谱基础乐理知识【第二期】
- Q有多少三阶魔方还原公式
- Q优秀如何室内水培大蒜
- Q最近三阶魔方教程图解
- Q都说怎样折爱心信封
- Q寻找吉他基础教程入门知识,图文并茂简单易...
- Q这样怎样叠漂亮的千纸鹤
- Q回答下微信如何提现不扣手续费
- Q重磅【折纸系类】百合花的折法
- Q哪些雪容融简笔画怎么画
- Q有哪些可爱的冰墩墩简笔画画法
- Q这个教你看手纹识手相
- Q什么零基础初学入门画漫画手绘教程教学习
- Q帮忙五线谱入门基础教程
- Q如何选择初学者怎么学吉他
- Q想知道怎么样看钢琴五线谱
- Q什么蛋仔怎么画好看
- Q微信怎么查核酸检测报告结果
- Q支付宝微信二维码明年3月份不能用了
- QExcel如何设置数据透视表样式
- Q[视频]求大家一行字太长怎么变两行
已有 57374 位经验达人注册
已帮助 112107 人解决了问题