import cv2 # 读取样本图像和目标图像 sample_image = cv2.imread('D:/Opencvoutput/sample4.png') target_image = cv2.imread('D:/test/bssd.png') # 识别样本图像在目标图像中的位置 result = cv2.matchTemplate(target_image, sample_image, cv2.TM_CCOEFF_NORMED) # 获取最相似的位置 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) # 获取样本图像的宽度和高度 sample_width, sample_height = sample_image.shape[:2] if max_val > 0.9: # 获取最相似位置的左上角坐标和右下角坐标 top_left = max_loc bottom_right = (top_left[0] + sample_width, top_left[1] + sample_height) # 裁切含有样本图像的部分 cropped_image = target_image[top_left[1]:bottom_right[1], top_left[0]:bottom_right[0]] # 将裁切后的图像保存到指定位置 cv2.imwrite('D:/Opencvoutput/result.png', cropped_image)
时间: 2024-04-05 13:34:46 浏览: 98
这段代码的作用是使用OpenCV库中的模板匹配算法,在目标图像中找出与样本图像最相似的位置,并将这个位置的图像裁剪出来保存到指定位置。其中,样本图像和目标图像分别使用cv2.imread()方法读取,通过cv2.matchTemplate()方法获取最相似位置,然后通过cv2.minMaxLoc()方法获取最相似位置的左上角和右下角坐标,再通过切片操作获取含有样本图像的部分裁剪出来,并使用cv2.imwrite()方法将裁剪后的图像保存到指定位置。
阅读全文