我对VideoStream进行了“背景减法”。然后,我想检查指定多边形的内部,是否有白点。
我考虑过使用https://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/point_polygon_test/point_polygon_test.html,但我不知道该怎么做,因为在应用滤镜后存在白点。原始流还包含我也不想计算的白点。
import numpy as np
import cv2
import time
cap = cv2.VideoCapture()
cap.open("rtsp://LOGINNAME:PASSWORD@192.168.178.42:554")
#cap.open("C:\\Users\\001\\Desktop\\cam-20191025-220508-220530.mp4")
fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()
while(1):
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
polygonInnenAutoErkennen_cnt = np.array( [(24, 719), (714,414), (1005,429),(1084,719)] )
cv2.drawContours(fgmask,[polygonInnenAutoErkennen_cnt],-1,(255,128,60))
#How can I check here?
cv2.imshow('frame',fgmask)
k = cv2.waitKey(30) & 0xff
if k == 27: # exit on ESC
break
cap.release()
cv2.destroyAllWindows()
答案 0 :(得分:0)
最简单的方法是使用蒙版图像。在二进制图像上绘制多边形,然后将其用作白点的蒙版。您可以按像素进行乘法或逻辑与。