python opencv图像匹配 matchTemplate函数
2019-04-11 13:47
99 查看
算法思路
将目标图像在源图像中滑动,计算两个相同大小图像的距离,最后根据距离最小的位置作为匹配结果
其中计算图像距离的算法有多种:TM_SQDIFF,TM_SQDIFF_NORMED等详细见opencv官网
算法很简单,只用用在图像没有发生变形的情况下
代码
import cv2 def match_image(source, template): # 选择匹配算法 match_method = cv2.TM_SQDIFF result = cv2.matchTemplate(source, template, match_method) cv2.normalize(result, result, 0, 1, cv2.NORM_MINMAX, -1) # 概率图 cv2.imshow("rate", result) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result, None) if match_method == cv2.TM_SQDIFF or match_method == cv2.TM_SQDIFF_NORMED: match_loc = min_loc else: match_loc = max_loc return match_loc template = cv2.imread("dog.png") img = cv2.imread("img.png") location = match_image(img, template) pt1 = (int(location[0]), int(location[1])) x = location[0] + img.shape[1] / 2 y = location[1] + img.shape[0] / 2 pt2 = (int(x), int(y)) cv2.rectangle(img, pt1, pt2, (255, 0, 0), 2) cv2.imshow("img", img) cv2.waitKey(0)
匹配结果
相关文章推荐
- opencv中的匹配函数matchTemplate
- opencv学习(三十八)之图像模板匹配matchTemplate()
- opencv学习: 模板匹配函数matchTemplate
- python实现 opencv 学习笔记---模板匹配matchTemplate
- OpenCV中的模板匹配函数:cvMatchTemplate
- OpenCV模板匹配函数:matchTemplate()介绍
- opencv中的匹配函数matchTemplate
- Python OpenCV图像模板匹配
- OpenCV 入门教程 之环境配置 + 图片匹配 matchTemplate
- opencv matchTemplate模板匹配
- python+opencv 图像识别匹配
- opencv 模板匹配matchTemplate研究之一
- python for OpenCV图像处理之模板匹配以及分水岭算法
- opencv图像特征检测及匹配(harris,sift,surf,fast,breif,orb,BFmatch,FlannBasedMatcher)
- Feature Matching by using opencv(Python)-使用opencv进行图像特征匹配
- [转]通过降维加速opencv中的knnMatch图像匹配
- Opencv使用cv::matchTemplate进行模板匹配
- EmguCV Image类中的函数(四)使用MatchTemplate函数进行模板匹配
- [Python图像处理] 一.图像处理基础知识及OpenCV入门函数
- Python3与OpenCV3.3 图像处理(十四)--模板匹配