【发布时间】:2017-01-18 22:55:22
【问题描述】:
我一直在努力尝试使用 OpenCV/Python 检测水的边缘,我得到的结果相当不准确,并且没有稳健性。 这是我到目前为止所取得的成就: Original Image, output image
我目前正在做的是设置一些变量(高斯模糊的水平、用于 Canny 边缘检测的 sigma 以及测量的水平可以在每个点之间改变的最大偏差),执行“自动”Canny 边缘检测(测量中值像素强度并用于形成上下边界),然后从左下角向上移动以找到第一个“白色”像素。这是在帧的整个长度上以五次的 x 间隔完成的。
计算点的平均 y 值。然后测试每个点,看它是否偏离平均像素太远,偏差限制设置得更早。然后将剩余的点绘制在图像上作为蓝线。在每一帧记录绘制像素的平均值。
30 帧后,计算平均值并将其绘制为红线,然后假定为“真实”水位高度。
有人对更好的方法有任何想法吗?什么会使水的边缘更加突出?这种方法适用于我录制的大多数镜头,但效果不佳。
提前致谢。
【问题讨论】:
标签: python opencv image-processing gaussian canny-operator