多角度模板匹配代码
模板匹配是一种常用的计算机视觉技术,用于在图像中寻特定模式的位置。在这里,我将从多个角度介绍模板匹配的代码实现。
首先,我们可以使用Python的OpenCV库来实现模板匹配。下面是一个简单的例子:
python.
import cv2。
import numpy as np.
# 读取原始图像和模板图像。
img = cv2.imread('original_image.jpg')。
template = cv2.imread('template_image.jpg')。
# 将图像转换为灰度。
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)。
gray_template = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)。
# 使用模板匹配算法。
result = cv2.matchTemplate(gray_img, gray_template, cv2.TM_CCOEFF_NORMED)。
# 寻最佳匹配位置。
rectangle函数opencv min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)。
# 绘制矩形标记。
top_left = max_loc.
bottom_right = (top_left[0] + template.shape[1], top_left[1] + template.shape[0])。
angle(img, top_left, bottom_right, (0, 255, 0), 2)。
# 显示结果。
cv2.imshow('Matched Image', img)。
cv2.waitKey(0)。
cv2.destroyAllWindows()。
上述代码使用了OpenCV的模板匹配函数`cv2.matchTemplate`,并利用`cv2.minMaxLoc`函数到最佳匹配位置,最后在原始图像上绘制了矩形标记。
另外,除了OpenCV,还可以使用其他库如NumPy和Matplotlib来实现模板匹配算法。以下是一个使用NumPy和Matplotlib的例子:
python.
import numpy as np.
import matplotlib.pyplot as plt.
import matplotlib.image as mpimg.
# 读取原始图像和模板图像。
img = mpimg.imread('original_image.jpg')。
template = mpimg.imread('template_image.jpg')。
# 使用模板匹配算法。
result = np.sum((img template) 2)。
# 寻最佳匹配位置。
min_val = np.min(result)。
min_index = np.unravel_index(np.argmin(result), result.shape)。
# 绘制矩形标记。
top_left = min_index.
bottom_right = (top_left[0] + template.shape[0], top_left[1] + template.shape[1])。
plt.imshow(img)。
a().add_patch(plt.Rectangle((top_left[1], top_left[0]), template.shape[1], template.shape[0], edgecolor='r', facecolor='none'))。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论