好吧,我一直想知道在图像/模板中找到变形子图像的好方法。此时我正在使用cv2.matchTemplate,它不时工作,它取决于给定的容差级别,以及背景“噪声”:其他对象可能相似,因此如果公差则返回很高兴。
当前的算法是这样的(伪)/只返回一个匹配(多重匹配得到类似 - 这是这个问题的实际情况):
haystack = im.read("stack.bmp")
image = Image.open("im.bmp")
MATCH = []
PIL_rotateImage for 0 to 360: # You get the point..
image = np.array(rotatedImage)
result = cv2.matchTemplate(image, haystack, algorithm) #algorithm: CCOEFF_NORMED
resultMax = result.max()
y,x = np.unravel_index(result.argmax(), result.shape)
MATCH.append([resultMax, (x,y)])
Best_match = sorted(MATCH, key=itemgetter(0))[0]
if Best_match[0] < minval: return False
*.....*
假设您有一个包含变形(部分和/或旋转)的子图像的模板,它与图像完全相同(对于人眼):
我也试过迭代列表,但这显然很慢,而我这样做的方式只是通过检查是否有一些第一个/最后一个或中心像素相同...&lt; - Ofcourse not working用于查找部分或旋转的对象。
一个小图片(示例)支持我的写作,以帮助您理解: 只是一个例子!
问:有没有人有关于如何解决此问题的任何提示,伪代码或实用代码?可以给我一个开始的东西,因为我经常迷路。