OpenCV模板匹配无法获取正确匹配位置的问题求助
OpenCV模板匹配无法获取正确匹配位置的问题求助
我在使用模板匹配时遇到了麻烦,代码在处理简单的源图和模板图时能正常工作,但针对当前的图片,匹配位置总是不对。我试着调整过代码,可结果还是不正确,感谢您抽出时间帮忙解决!
相关图片
- 模板图:
pfizertemplate.png(显示带有"PFIZER"字样的标识区域) - 源图:
pfizersource.jpg(包含多个药品包装盒的图片,其中存在目标模板对应的包装盒)
我当前使用的代码
import numpy as np import cv2 import subprocess # Assign template and target images image = cv2.imread('pfizersource.jpg') template = cv2.imread('pfizertemplate.png') # Resize images image = cv2.resize(image, (0, 0), fx=0.5, fy=0.5) template = cv2.resize(template, (0, 0), fx=0.5, fy=0.5) # Convert to grayscale imageGray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) templateGray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY) # Find template result = cv2.matchTemplate(imageGray, templateGray, cv2.TM_CCOEFF) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) top_left = max_loc h, w = templateGray.shape bottom_right = (top_left[0] + w, top_left[1] + h) cv2.rectangle(image, top_left, bottom_right, (0, 0, 255), 4) # Show result cv2.imshow("Result", image) cv2.imshow("Template", template) cv2.moveWindow("Template", 10, 50); cv2.moveWindow("Result", 150, 50); print(top_left) cv2.waitKey(0) cv2.destroyAllWindows() cv2.waitKey(1)
我已经尝试过使用不同的匹配方法,但仍然无法得到正确的结果:
cv2.TM_CCOEFFcv2.TM_CCOEFF_NORMEDcv2.TM_CCORRcv2.TM_CCORR_NORMEDcv2.TM_SQDIFFcv2.TM_SQDIFF_NORMED
备注:内容来源于stack exchange,提问作者tech_taco
相关产品推荐
相关产品推荐

