Python3 opencv получает количество совпадений шаблона - PullRequest
0 голосов
/ 27 апреля 2018

Идея состоит в том, чтобы прочитать поток из IP-камеры CAM, которая получает видео 640 * 480 и составляет матрицу, например, 1, если точка находится в прямоугольнике, или 0, если нет. Я заблокирован, потому что когда я получаю значения X & Y, он принимает только случайную точку, а не все данные в списке, например.

Я хочу получить количество совпадений, возвращенных в режиме реального времени , чтобы я мог составить матрицу об этом. Я новичок в обработке изображений.

Вот код:

import cv2
import numpy as np
from matplotlib import pyplot as plt

matrice = np.zeros((2, 4))

#Matrix
def refresh_matrice(shape):
    a = np.zeros(shape)
    return a

#define points saw on the matrix
def get_point(frame, minLocation, maxLocation):
    pass

if __name__ == "__main__":
    img = cv2.VideoCapture("http://root:root@192.168.1.198/mjpg/video.mjpg")
    while True:    
        matrice = refresh_matrice((2,4))
        rval, frame = img.read()
        img_rgb = frame
        img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
        template = cv2.imread('template.png',0)
        w, h = template.shape[::-1]

        res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
        (minValue, maxValue, minLocation, maxLocation) = cv2.minMaxLoc(res)
        threshold = 0.575
        loc = np.where( res >= threshold)
        for pt in zip(*loc[::-1]):
            cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)


        print("X & Y of the webcam : ", frame.shape[:2], "X & Y of the match", minLocation)
        cv2.imshow('res.png',img_rgb)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

А вот картинка: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...