找到高于岩石水位的高度

The*_*dor 7 image-processing computer-vision

我目前正在帮助一个从事地球物理项目工作的朋友,我不是一个图像处理专家,但是玩这些问题很有趣.=)

目的是估计从表面到顶部从水中伸出的小岩石的高度.

实验设备将是安装在距离计上的~100万像素摄像头,内置激光指示器."操作员"将指向岩石,按下触发器,该触发器将记录沿着岩石照片的距离,该照片将位于图像的中心.

可以假设设备始终保持在水上方的固定距离处.

我认为有很多问题需要克服:

  1. 照明条件

    • 根据一天中的时间等,岩石可能比水更亮或相反.
    • 有时岩石的颜色会非常接近水面.
    • 阴影的位置将在一整天内移动.
    • 根据水的粗糙程度,有时可能会在水中反射岩石.
  2. 多样

    • 岩石形状不均匀.
    • 根据岩石类型,地衣等的生长,改变岩石的外观.

幸运的是,测试数据并不缺乏.水中的岩石图片很容易获得.以下是一些示例图片: 替代文字 我在图像上运行了边缘检测器,尤其是 在第四张图片中,对比度差,很难看到边缘: 替代文字 任何想法将不胜感激!

Alc*_*sta 4

我不认为边缘检测是检测岩石的最佳方法。其他物体,例如山脉,甚至水中的倒影,都会产生边缘。

我建议您尝试使用像素分类方法从图像背景中分割岩石:

  • 对于图像中的每个像素,从以该像素为中心的 NxN 邻域中提取一组图像描述符。
  • 选择一组图像并手动将像素标记为岩石或背景。
  • 使用标记的像素和相应的图像描述符来训练分类器(例如朴素贝叶斯分类器)

由于岩石往往具有相似的纹理,我将使用纹理图像描述符来训练分类器。例如,您可以尝试从每个颜色通道(R、G、B)中提取一些统计测量值,例如强度值的平均值和标准差。