opencv 3.3 python linemod: как добавлять шаблоны - PullRequest
0 голосов
/ 25 мая 2018

сегодня он пытается использовать алгоритм 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)

Изображение шаблона:

Изображение шаблона

Но когда я пытаюсь добавить шаблон, он всегда терпит неудачу.У кого-нибудь есть идеи, как заставить его работать так, как ожидалось?Я уже заглянул в исходный код C ++, но все вроде бы хорошо.Я думаю, что код обертки может быть проблемой?!

Best,

Manuel

1 Ответ

0 голосов
/ 12 октября 2018

маска не пересекается с шаблоном изображения.даже если изображение отфильтровано по гауссову, величина sobel в области маски ниже порогового значения (по умолчанию 55).так что это не может быть успешным.Вы можете снизить порог или просто не давать маску.

...