要在大图片中识别一张透明小图片的位置,可以使用Python的图像处理库OpenCV和NumPy。以下是一个基本的代码示例:

import cv2
import numpy as np

# 加载大图片和小图片
large_image = cv2.imread('large_image.png')
small_image = cv2.imread('small_image.png', cv2.IMREAD_UNCHANGED)

# 获取小图片的宽度和高度
small_height, small_width, _ = small_image.shape

# 使用模板匹配方法在大图片中查找小图片
result = cv2.matchTemplate(large_image, small_image, cv2.TM_CCOEFF_NORMED)

# 设置阈值,筛选出匹配程度大于阈值的位置
threshold = 0.8
locations = np.where(result >= threshold)

# 在大图片中标记小图片的位置
for pt in zip(*locations[::-1]):
    cv2.rectangle(large_image, pt, (pt[0] + small_width, pt[1] + small_height), (0, 255, 0), 2)

# 显示结果
cv2.imshow('Result', large_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个示例中,我们首先加载大图片和小图片。然后,使用cv2.matchTemplate()函数在大图片中查找小图片。这个函数返回一个匹配结果矩阵,其中每个元素表示大图片中对应位置与小图片的匹配程度。我们可以设置一个阈值,筛选出匹配程度大于阈值的位置。最后,使用cv2.rectangle()函数在大图片中标记出小图片的位置。

请确保将'large_image.png'和'small_image.png'替换为实际的大图片和小图片的文件路径。

Python OpenCV: 识别透明小图片在大图片中的位置

原文地址: https://www.cveoy.top/t/topic/pp41 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录