c#如何检测图像上的水位?
我的作业是编写一个非常简单的应用程序(Java或C#,我都知道),它可以检测图片中一杯水/可乐的水位(它必须在那里画一条线)。我甚至不知道怎么开始。我搜索了一整天,但没有找到有用的结果。有什么好的算法可以检测液体的液位吗
照片是从侧面拍摄的,如下所示:
(如果它同时检测到两条线也很好)。那么你能帮我从哪里开始吗?使用egde检测(有没有好的基本算法?),还是其他方法
最好能检测到水、焦炭和每一种液化物等
你可以在下面搜索框中键入要查询的问题!
我的作业是编写一个非常简单的应用程序(Java或C#,我都知道),它可以检测图片中一杯水/可乐的水位(它必须在那里画一条线)。我甚至不知道怎么开始。我搜索了一整天,但没有找到有用的结果。有什么好的算法可以检测液体的液位吗
照片是从侧面拍摄的,如下所示:
(如果它同时检测到两条线也很好)。那么你能帮我从哪里开始吗?使用egde检测(有没有好的基本算法?),还是其他方法
最好能检测到水、焦炭和每一种液化物等
# 1 楼答案
你需要做一些边缘检测,一旦你有了边缘,试着在玻璃中找到水平面。你可以使用像Aforge.NET这样的工具箱。然后,检测边缘的代码非常简单,例如:
产生如下图像:
现在应该更容易找到杯子里的水点了。由于所有的背景噪声都已消除,因此您可以专注于确定应该对哪个边缘设置关键帧
# 2 楼答案
这将有助于你获得有关玻璃的容量
一旦你知道一个杯子能装多少水,你就可以用你自己写的函数在图像上画两条线。我建议用一条线表示玻璃尺寸,用一条线表示图像上方的水位,然后你可以使用这些线和玻璃的最大容量来形成两者之间的相关性,并计算玻璃中所含的液体水平
记住,你的教授对你100%正确地完成作业不太感兴趣,他们更感兴趣的是让你做好准备,主动解决问题。谷歌搜索并不总能解决你的问题
# 3 楼答案
检查Hough变换here