CV2:有输出多边形中白点数量的函数吗?

2024-09-27 09:22:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我用视频流做“背景减法”。然后我想检查指定多边形的内部是否有白点

我曾考虑过使用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()

Tags: testimportnpopencv2framepointcap
1条回答
网友
1楼 · 发布于 2024-09-27 09:22:43

最简单的方法是使用遮罩图像。在二值图像上绘制多边形,并将其用作白点的遮罩。您可以只进行每像素乘法或逻辑AND运算

相关问题 更多 >

    热门问题