我有一个来自摄像机的流图像。通过此流图像,我创建了一大套多边形,每个多边形都是一个“关注区域”。然后,我使用多边形生成了一个蒙版并将该蒙版应用于流式图像,因此现在我只能“看到”被蒙版的区域。
我现在遇到的问题是如何确定遮罩区域内是否有东西(例如兔子,人,汽车等)-请注意,它到底有什么关系,该空间已被占用。
我发现拉普拉斯空间过滤器可以很好地观察是否存在于多边形中(至少在视觉上),但是我不知道下一步将是什么。我的想法是对黑白图像中的像素进行平均,如果它们超过阈值,则假设是肯定的。
包含多边形坐标的文件的布局为:
x1,y1;x2,y2;c3,y3;x4,y4,...
x1,y1;x2,y2;c3,y3;x4,y4,...
x1,y1;x2,y2;c3,y3;x4,y4,...
x1,y1;x2,y2;c3,y3;x4,y4,...
x1,y1;x2,y2;c3,y3;x4,y4,...
我读取多边形数组的代码如下:
pointlist = []
data = open(args["slots"]).read().split()
for row in data:
tmp = []
col = row.split(";")
for points in col:
xy = points.split(",")
tmp += [[int(pt) for pt in xy]]
pointlist += [tmp]
slots = np.asarray(pointlist)
图像遮罩和过滤如下:
img = cv2.resize(img, (480, 270))
blurred = cv2.GaussianBlur(img,(3, 3), 0)
mask = np.zeros(blurred.shape[:2], dtype="uint8")
cv2.fillPoly(mask,slots,(255,255,255))
masked = cv2.bitwise_and(blurred,blurred,mask=mask)
lap = cv2.Laplacian(masked, cv2.CV_64F)
lap = np.uint8(np.absolute(lap))
如果您能给我一些下一步的示例代码,将不胜感激。