Идея состоит в том, чтобы прочитать поток из 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
А вот картинка:
