python opencv matchTemplate реализована функция маски?

1

OpenCV, начиная с версии 3.0.0, добавил функцию маски в метод matchTemplate. Он поддерживает сопоставление шаблонов с прозрачными шаблонами, определяя маску в шаблоне. Моя программа python ниже работает нормально, но если я добавлю параметр mask в вызов cv2.matchTemplate, он выдает сообщение об ошибке:

OpenCV Error: The function/feature is not implemented () in matchTemplateMask, file /Users/jared.rada/dev/opencv/modules/imgproc/src/templmatch.cpp, line 894
Traceback (most recent call last):
File "masked.py", line 13, in <module>
res = cv2.matchTemplate(img, tmpl, cv2.TM_CCOEFF_NORMED, data, mask)
cv2.error: /Users/jared.rada/dev/opencv/modules/imgproc/src/templmatch.cpp:894: error: (-213)  in function matchTemplateMask`

Мой исходный код:

import sys
import numpy as np
import cv2


img = cv2.imread('./image.jpg')
tmpl = cv2.imread('./tmpl.png')
mask = cv2.imread('./mask.png')
w, h = tmpl.shape[:-1]
data = np.zeros((h, w, 3), dtype=np.uint8)

res = cv2.matchTemplate(img, tmpl, cv2.TM_CCOEFF_NORMED, data, mask)

min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img, top_left, bottom_right, (0, 0, 255), 2)

cv2.imshow("images", np.hstack([img]))
cv2.waitKey(0)

Как узнать, поддерживает ли привязки python функцию маски?

  • 0
    Вы можете ошибаться в версии, если она была объединена 19 января, вероятно, только в opencv3.1.
  • 0
    да, хороший момент @berak, я также попробовал 3.1.0 (подтверждено print cv2.__version__ которая читает 3.1.0 но выдает ту же ошибку. Любые другие предложения о том, как я могу узнать, реализована ли эта функция в привязках python?
Показать ещё 1 комментарий
Теги:
opencv
opencv3.0

1 ответ

7
Лучший ответ

есть простой ответ: глядя на src code, вы обнаружите, что он реализован только для method == CV_TM_SQDIFF и method == CV_TM_CCORR_NORMED, другими словами, не для желаемого cv2.TM_CCOEFF_NORMED

Ещё вопросы

Сообщество Overcoder
Наверх
Меню