opencv 3.3 python linemod:如何添加模板

时间:2018-05-25 14:39:27

标签: python opencv computer-vision wrapper

今天它尝试使用linemod算法,它是OpenCV的一部分。在早期的C ++项目中,我已经使用了linemod和 它的工作方式与文档中描述的一样,但这一次我尝试了 使用Python API。

这是我的方法:

import cv2

template = cv2.imread('path_to_template')

lineModDetector = cv2.linemod.getDefaultLINE()
print(len(lineModDetector.getModalities()))

mask = cv2.bitwise_not(template)[:,:,1]

ret, boundingBox = lineModDetector.addTemplate([template], "circle", mask)
print(ret)
print(boundingBox)

模板图片:

Template Image

但是当我尝试添加模板时,它总是失败。有人知道如何让它按预期工作吗?我已经看过C ++源代码,但一切似乎都没问题。我猜包装器代码可能是问题?!

最佳,

曼努埃尔

1 个答案:

答案 0 :(得分:0)

遮罩不与模板图像相交。即使图像被高斯滤波,遮罩区域中的sobel幅度也低于阈值(默认值为55)。所以它不会成功。 您可以降低阈值,也可以不设置遮罩。