def find_best_scale(feature, scene, min_scale=0.5, max_scale=1.0, scale_delta=0.02, min_corr=0.8):
best_corr = 0
best_scale = 0
scale = min_scale
for scale in np.arange(min_scale, max_scale + scale_delta, scale_delta):
scaled_feature = cv2.resize(feature, (0, 0), fx=scale, fy=scale)
result = cv2.matchTemplate(scene, scaled_feature, cv2.TM_CCOEFF_NORMED)
_, max_val, _, max_loc = cv2.minMaxLoc(result)
if max_val > best_corr:
best_corr = max_val
best_scale = scale
if best_corr > min_corr:
return best_scale
else:
return None
评论列表
文章目录