- 安装opencv
首先需要安装OpenCV,可以通过命令行或者Anaconda Prompt输入以下命令进行安装:
pip install opencv-python
- 导入库
导入库OpenCV,并载入两张待比对的图片
import cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
- 比对图片
使用OpenCV的matchTemplate函数进行图片比对,该函数将返回一副灰度图像,表示模板在输入图像中的匹配情况:
res = cv2.matchTemplate(img1, img2, cv2.TM_CCOEFF_NORMED)
- 提取匹配位置及匹配系数
提取匹配位置及匹配系数:
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
其中min_loc和max_loc表示最小匹配值和最大匹配值所在的位置,max_val即为最大匹配值,也即匹配系数。
- 显示比对结果
最后可以把比对结果显示出来,用一个矩形框圈出模板在被比对图片中的位置:
w, h = img2.shape[:2]
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img1, top_left, bottom_right, (0, 0, 255), 2)
cv2.imshow('Matched Image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 示例1
下面是一个示例1,用于比对两张刻度尺图片中的相同位置,验证两张图片的尺度是否一致:
import cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
res = cv2.matchTemplate(img1, img2, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
w, h = img2.shape[:2]
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img1, top_left, bottom_right, (0, 0, 255), 2)
cv2.imshow('Matched Image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 示例2
下面是一个示例2,用于比对两张同一张图片的不同位置,验证两个位置的像素是否相同:
import cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
res = cv2.matchTemplate(img1, img2, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
w, h = img2.shape[:2]
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img1, top_left, bottom_right, (0, 0, 255), 2)
cv2.imshow('Matched Image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
img3 = img1[200:400, 200:400]
img4 = img1[600:800, 600:800]
res2 = cv2.matchTemplate(img3, img4, cv2.TM_CCOEFF_NORMED)
min_val2, max_val2, min_loc2, max_loc2 = cv2.minMaxLoc(res2)
if max_val2 > 0.9:
print("The two selected areas are similar")
else:
print("The two selected areas are different")
以上就是在python中利用opencv简单做图片比对的方法的完整攻略,包含两条示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在python中利用opencv简单做图片比对的方法 - Python技术站