python - 如何使用 OpenCV 从线扫描相机中提取连续图像边界中的对象及其大小?
问题描述
我想基于OpenCV和Python提取对象的总数及其大小。我假设微小的物体在传送带上不规则地移动。由于对象大小对我来说很重要,因此我决定使用线扫描相机来存储图像。
线扫描相机通常以连续图像的形式存储接收到的数据,每个图像具有一定数量的扫描线。
问题:
我可以提取完全在图像中的对象并计算它们的大小。我的主要问题是提取两个连续图像的边距/边框中的对象的数量和大小。
这是连续图像的示例(图像 n和图像 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 个像素。
推荐阅读
- c# - 如何检查 InputField.Text 是否包含两个随机生成的字母?
- android - Android Grid View:将图像堆叠在另一个之上
- java - 简单的双向 @OneToOne 存储 null
- c# - 获取媒体会话的程序句柄和窗口句柄
- python - 如何实现深度卷积神经网络的反向传播?
- python - 如何在 Python 中使用 BAC0 readRange
- python-3.x - 如何从 RSA 公钥计算指纹?
- python - 如何创建多个包含我所有地块的地块
- reactjs - 如何将对象传递到 ant.design 表单中?
- python - 当随机数生成器在列表中移动时,如何改变它的概率?