如何使用Python+OpenCV进行图像模板匹配(Match Template)

技术如何使用Python+OpenCV进行图像模板匹配(Match Template)这篇文章主要为大家展示了“如何使用Python+OpenCV进行图像模板匹配(Match Template)”,内容简而易懂,条理清晰

本文主要展示“如何使用Python OpenCV匹配图像模板”,简单易懂,条理清晰,希望能帮你解开疑惑。让边肖带领大家学习学习《如何使用Python OpenCV匹配图像模板》一文。

首先导入所需的库文件,numpy和cv2。

#导入所需的库文件importcv2importnumpyasnp,然后加载原始图像和要搜索的图像模板。OpenCV处理原始图像,创建一个灰色版本,并在灰色图像中处理和匹配它。然后使用相同的坐标恢复并输出原始图像。

#加载原始RGB图像img _ RGB=cv2 . imread(' photo . jpg ')#创建原始图像的灰色版本,所有操作都在灰色版本中处理,然后还原img_gray=cv2.cvtColor(img_rgb,2.cvcolor _ bgr2gray) #加载要搜索的图像模板=cv2.imread ('face.jpg ',0) #记录图像模板的大小w,h=template.shape [:3360-1]

如何使用Python+OpenCV进行图像模板匹配(Match  Template)

如何使用Python+OpenCV进行图像模板匹配(Match  Template)

如何使用Python+OpenCV进行图像模板匹配(Match  Template)

#查看三组图像(图像标签名、文件名)CV2。imshow ('RGB ',img _ RGB) CV2。imshow ('gray ',img _ gray) CV2。imshow ('template ',template) CV2。waitkey (0) CV2。使用destroyallwindows()

#使用matchTemplate RES=CV2将原始灰色图像与图像模板进行匹配。匹配模板(img _ gray,模板,CV2。TM _ cceff _ normalized)# Set threshold=0.7 # RES大于70%loc=np .其中(res=threshold)匹配后用原始图像中灰度图像的坐标标记原始图像。

#用灰度图像中的坐标标记原始的RGB图像,用于(* loc [:3360-1]) :cv2 .矩形(img _ RGB,PT,(PT [0] W,PT [1] H),(7,249,151),2)img _ RGB)cv2 . waitkey(0)cv2 . destroyallwindows()如何使用Python+OpenCV进行图像模板匹配(Match  Template)

以下是完整的代码:

defmathc_img(image,Target,value): importcv2 importtnumpsyasnipmg _ RGB=cv2 . imread(image)img _ gray=cv2 . CVT color(img _ RGB,cv2。COLOR _ BGR2GRAY)template=cv2 . imread(Target,0)w,h=template . shape[:-1]RES=cv2 . match template(img _ gray,template,cv2。TM _ CCOEFF _ NORMED)threshold=Value loc=NP .其中(res=threshold)为tinzip(* loc[:-1]): cv2 . rectangle(img _ RGB,pt,(pt[0] w,pt[1] h),(7,249,151),2)cv2.imshow('Detected ',img _ RGB)cv2 . waitkey(0)cv2 . destroyallwindows()image=(' photo . jpg ')感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/85715.html

(0)

相关推荐

  • 速度单位换算,物理长度、速度单位换算

    技术速度单位换算,物理长度、速度单位换算常用单位常用的长度单位有速度单位换算:公里{千米} (km)、分米(dm)、厘米(cm)、毫米(mm)、微米(μm)、纳米(nm)、皮米(pm)、飞米(fm)。
    (1)公里
    公里又

    生活 2021年10月30日
  • C++怎么正确使用线程

    技术C++怎么正确使用线程这篇文章主要介绍“C++怎么正确使用线程”,在日常操作中,相信很多人在C++怎么正确使用线程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么正确使用线程”

    攻略 2021年11月25日
  • Tomcat9如何实现请求处理

    技术Tomcat9如何实现请求处理这篇文章给大家分享的是有关Tomcat9如何实现请求处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。请求处理Tomcat对于HTTP请求,会由Connect

    攻略 2021年12月11日
  • oracle数据库安装前需要如何配置环境

    技术oracle数据库安装前需要如何配置环境小编给大家分享一下oracle数据库安装前需要如何配置环境,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!系统版本redhat5.6一 安装前环境配置查看内存g

    攻略 2021年11月18日
  • lte网络注册流程,3)

    技术lte网络注册流程,3) lte网络注册流程(3)
    lte网络注册流程(3)
    本文介绍下下lte网络注册的附着和建立默认承载的过程之中消息分析.
    1.attach request消息中主要包括:EP

    礼包 2021年11月25日
  • 两台服务器做数据主从备份(读写分离主从同步需要锁吗)

    技术如何用两台服务器实现数据库的主从同步与分离这期内容当中小编将会给大家带来有关如何用两台服务器实现数据库的主从同步与分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用背景:在网联

    攻略 2021年12月18日