【问题标题】:python opencv matchTemplate is mask feature implemented?python opencv matchTemplate 是否实现了掩码功能?
【发布时间】:2016-06-10 01:24:15
【问题描述】:

OpenCV, as of version 3.0.0, added a mask feature 到 matchTemplate 方法。它通过在模板上定义掩码来支持与透明模板的模板匹配。下面的 python 程序运行良好,但如果我在 cv2.matchTemplate 调用中添加 mask 参数,则会引发错误:

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 绑定是否支持掩码功能?

【问题讨论】:

  • 你可能对版本有误,如果是1月19日合并的,可能只有opencv3.1。
  • 是的好点@berak,我也尝试了3.1.0(由print cv2.__version__确认,它读取3.1.0,但它会引发同样的错误。关于我如何找出这个功能的任何其他建议是在python绑定中实现的吗?
  • 我查看了错误中提到的 .cpp 文件,我看到了这个签名 static bool matchTemplate_CCOEFF_NORMED(InputArray _image, InputArray _templ, OutputArray _result) 所以它似乎没有掩码的参数。

标签: python opencv opencv3.0


【解决方案1】:

有一个简单的答案:查看 src code ,您会发现,它仅适用于 method == CV_TM_SQDIFFmethod == CV_TM_CCORR_NORMED ,换句话说,不适用于您想要的 cv2.TM_CCOEFF_NORMED

【讨论】:

    【解决方案2】:

    更新答案:见src code

    the commit:

    templmatch:为所有方法添加对掩码的支持

    现在最新的pip install opencv-contrib-python 将包括所有方法的掩码(在 python3.7 上测试(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 2017-09-30
      相关资源
      最近更新 更多