我正在使用OpenCV和Python,我需要解决以下问题:
我正在使用USB摄像头录制视频,其中光点将出现在帧的不同部分,变得更亮,最终消失(类似这样的https://i.stack.imgur.com/EwcV9.png)。总的来说,随着时间的推移,斑点应该保持在同一个位置。我需要该程序来分割相机帧,这样每段只有一个亮点然后我想把每个摄像头片段单独对待。这样我就可以在视频持续时间内将每个亮点与其本身进行比较,看看它是如何演变的。
任何关于如何处理这个问题或使用什么方法的建议都非常感谢。
我知道如何检测照片上的每个亮点,但我不知道如何划分相机帧,以便最终在每个片段中出现一个亮点。
编辑:我意识到我没有指定每次可能会有不同数量的点出现在视频上。因此,每次我都需要不同数量的片段和不同的坐标/尺寸大小的片段。
1条答案
按热度按时间8ljdwjyq1#
回答我的问题。有两种情况:
案例一:如果斑点出现在同一个位置(或多或少)并且它们的数量总是固定的,那么你需要做的就是使用cv2.findContours方法并使用cv2.boundingRect(contour)提取边界矩形。这是因为OpenCV总是从屏幕的右下角开始搜索轮廓。因此,分级结构中的轮廓的编号将是一致的,并且每个亮点将具有相同的编号。
案例二:如果斑点或多或少保持静止,但它们的数量发生了变化,则需要更详细的方法。要么手动确保您没有比较不同的斑点,要么尝试使用@MSalters指出的Voronoi图分割帧。