首页 > 解决方案 > 我应该遵循哪些步骤来确定一杯液体的液位?

问题描述

我对 OpenCV Java 相当陌生,我一直在寻找方法来完成标题所要求的工作。到目前为止,据我了解,第一步应该是使用像 Sobel 或 Laplace 这样的检测边缘滤波器。

来自https://docs.opencv.org/3.4/d2/d2c/tutorial_sobel_derivatives.html,我得到以下结果:glass_sobel

从现在开始,我不知道下一步该做什么......我应该怎么做才能得到我想要的?谢谢你的帮助 !

标签: javaopencv

解决方案


采取垂直边缘差异(sobel)确实是正确的一步。但首先我建议修复一些参数。例如,玻璃的位置、大小和形状是否固定?然后拍摄没有流体的图像,并使用它从结果中推断出玻璃。如果没有,我会采取以下步骤: 尝试增加边缘可见性。在您的图像中,您确实看到了一个清晰的边缘,但计算机可能会将其视为 4 个边缘,因此请尝试确保将彼此靠近的边缘视为一个边缘(扩张操作可能会这样做)。根据液体的不同,您也可以从图像中提取某种颜色。水是这里最不幸的情况,但橙汁之类的东西很容易被发现。对于更清晰的边缘,我会尝试从玻璃中取出一条垂直线,并对每个边缘进行分类(它是玻璃的一部分还是液体的一部分)。


推荐阅读