【问题标题】:Python 3.6.7 - OpenCV(4.1.2) Template matchingPython 3.6.7 - OpenCV(4.1.2) 模板匹配
【发布时间】:2020-01-01 19:04:12
【问题描述】:

我有这个 代码(在文档中使用)用于模板匹配:

img_rgb = cv2.imread('mta-screen_2020-01-01_12-07-24.png.png')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
path = 'D:\!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!_!Piton\MTA_pyautogui\TrainImgs' + chr(92) + '1.png'
template = cv2.imread(path, 0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = nm.where(res >= threshold)
for pt in zip(*loc[::-1]):
    cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
cv2.imwrite('res.png', img_rgb)

所以,我有这张 图片(用于检测),它的 速度右下角 我有这个模板 (速度的第一个字符),它位于上面大图的右下角:

我有输出 error

Traceback (most recent call last):
  File "D:/!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!_!Piton/MTA_pyautogui/main.py", line 38, in <module>
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

文件树:

所以,我的目标是根据每个数字制作一个模板并检测火车的速度。我并不关心方法或速度,我只想要一个告诉火车速度的输出。所以,为此,我想使用OpenCV 模板匹配。

【问题讨论】:

标签: python python-3.x opencv image-processing template-matching


【解决方案1】:
img_rgb = cv2.imread('mta-screen_2020-01-01_12-07-24.png.png')

如果您看到有两个 .png 而不是一个,我找到了答案。 现在,我正在尝试解决问题,因为它并没有真正检测到我需要什么,所以我现在正在尝试裁剪图像以使右下角仅可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多