一、简介:
上节课我们讲解了python 利用OpenCV进行图像匹配。并画出位置。但是图像中有多个相同图像,如何全部匹配到呢。
二、导入需要的库
import cv2 #导入opencv库
import numpy as np
这节需要用到numpy。numpy 支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
三、加载图像
# 图片和路径请勿使用中文
img_rgb = cv2.imread('超级玛丽.jpg')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('金币.jpg',cv2.IMREAD_GRAYSCALE)
#cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式
#cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片
上节已经讲了加载图像。为什么又讲呢。因为这次我们需要将BGR转为灰度图像。小金币图像也同样转为灰度图像。第一张图为什么不直接读取时转为灰度图像呢。因为你后面不好标记。
(灰度图像并不等于黑白图片)
四:CV_TM_CCOEFF_NORMED 归一化相关系数匹配法
h, w = template.shape[:2] # rows->h, cols->w
print('高:',h,"宽:",w)
# 相关系数匹配方法:cv2.TM_CCOEFF
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
五:设定阈