这是一个有趣的问题,但......
我们的办公室小厨房里有一个网络摄像头,专注于我们的咖啡机。咖啡壶清晰可见。咖啡壶和相机的位置都是静态的。是否可以使用图像识别来计算罐中咖啡的高度?我已经看到图像识别用于非常复杂的东西,如面部识别。与那些项目相比,这似乎是衡量高度的一项微不足道的任务。
(这是我最好的猜测,我不知道潜在的复杂性。)
我该怎么做?这会被认为是一项非常复杂的工作吗?仅供参考,我从未做过任何与影像有关的工作。
由于
答案 0 :(得分:11)
由于咖啡壶的位置是静止的,因此在一个没有反射的地方找到一个样品框并找到一个单个像素列,其中可以很容易地看到最小和最大咖啡量。检查下图中的绿色垂直线段:
http://imagepaste.nullnetwork.net/img/1278948944coffee_maker.jpg
最简单的方法是使用两个框架,一个框架为空,一个框架为满(明显在相同的光照条件下,通常情况就是如此),转换为灰度(colorsys.rgb_to_hsv
每个RGB像素并仅保留v
(第3个)分量,并对所选线段中所有像素的亮度求和。假设这个空罐的情况达到了550的总和,并且满罐的情况总和为220(咖啡是黑暗的)。通过将输入帧总和与这两个总和进行比较,您可以粗略估计锅中咖啡的百分比。
N.B:在我的例子中,像素的绿色列应该延伸到底部;我刚才提供了一个我的意思的例子。
答案 1 :(得分:4)
我尝试的步骤:
答案 2 :(得分:2)
首先进行阈值处理,然后进行分割。然后,您可以更轻松地检测边缘。
答案 3 :(得分:1)
您正在寻找edge detection。但你只需要在咖啡的棕色/黑色和背后的背景颜色之间进行。
答案 4 :(得分:0)
有Python Image Library可以进行边缘检测。但我不是Python用户:)。
答案 5 :(得分:0)
您应该将此问题转换为IT学生的学校作业。 大多数IT学校教授Computer Vision。在这里提出这个问题很有趣,让学生和老师研究这个主题会很有趣!
答案 6 :(得分:0)
如果灰度版本或仅红色或绿色可能会产生更好的效果,您可以进行试验。
如果它出现不同灯光设置的问题,这种方法就没用了。只需为咖啡机购买聚光灯,或者使每张照片变亮或变暗,直到所有像素的总和达到参考值。