如何使用OpenCV从行扫描相机提取连续图像的边界对象及其大小?



我想基于OpenCV提取对象的总数和它们的大小Python和.我猜想微小的物体会在传送带上不规则地移动。由于对象大小对我来说很重要,所以我决定使用线扫描相机用于存储图像。

行扫描相机通常以连续图像的形式存储接收到的数据,每个图像都有一定数量的扫描行。

问题:

我可以提取完全在图像中的对象并计算它们的大小。我的主要问题是提取边距/边框中对象的数量和大小

下面是一个示例连续图像(image nimage n+1)。红线表示边距/边框连续图像。

示例图像

解决这个问题的方法是什么?你能建议解决这个问题的方法吗?

最诚挚的问候,穆罕默德

要分析页面n,首先连接页面n-1, n, n+1并检测这3页图像中的所有对象。对于顶部和底部边缘的对象,检测算法可能会失败,但与第n页相关的对象应该可以很好地检测到。对于每个对象,确定在3页图像中的y位置(例如,对象的最低y像素,或对象的质心)。所有y位置在页面的1/3到2/3之间的对象都属于页面n(假设每个页面的高度相同)。现在对下一页做同样的操作。

注意,这种方法分析每个页面3倍。您可以尝试减少开销,一旦您有这个工作。例如,如果您知道对象总是小于100像素,则可以将连接限制为第n-1页的底部100像素和第n+1页的顶部100像素。

最新更新