原图
模板
用彩色图匹配
fox = cv2.imread(r"C:\Users\75158\Desktop\OPENCV study\corrosion gradient\image\fox1.jpg")#,cv2.IMREAD_GRAYSCALE)
fox_part = cv2.imread(r"C:\Users\75158\Desktop\OPENCV study\corrosion gradient\image\part1.jpg")#,cv2.IMREAD_GRAYSCALE)
#cv_show("fox_part",fox_part)
h, w = fox_part.shape[:2]
method = ["cv2.TM_SQDIFF_NORMED","cv2.TM_CCORR_NORMED","cv2.TM_CCOEFF_NORMED"]
local= []
photo = []
for each in method:
met = eval(each)#转换字符串
res = cv2.matchTemplate(fox,fox_part,met)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
if each is method[0]:
top_left = min_loc
else:
top_left = max_loc
fox1=fox.copy()
cv2.rectangle(fox1, top_left, (top_left[0]+w, top_left[1]+h), 255, 2)
#cv_show("fox1",fox1)
local.append(top_left)
photo.append(fox1)
ret = np.hstack(photo)
cv_show("photo",ret)
效果如下
改用灰度图读入效果如下
更换模板(非原图部分)
灰度图效果如下(很差)