Image processing 确定岩石高于水面的高度
我目前正在帮助一位从事地球物理项目的朋友,我绝对不是图像处理专业人士,但玩起来很有趣 围绕着这些问题 目的是估算从表面到顶部伸出水面的小岩石的高度 实验设备将是一个安装在测距仪上的10MP摄像机,带有内置激光指针。 “操作员”会将其指向岩石,按下触发器,该触发器将记录岩石照片的一段距离,该距离 将位于图像的中心 可以假设设备始终保持在水面以上的固定距离 在我看来,有许多问题需要克服:Image processing 确定岩石高于水面的高度,image-processing,computer-vision,Image Processing,Computer Vision,我目前正在帮助一位从事地球物理项目的朋友,我绝对不是图像处理专业人士,但玩起来很有趣 围绕着这些问题 目的是估算从表面到顶部伸出水面的小岩石的高度 实验设备将是一个安装在测距仪上的10MP摄像机,带有内置激光指针。 “操作员”会将其指向岩石,按下触发器,该触发器将记录岩石照片的一段距离,该距离 将位于图像的中心 可以假设设备始终保持在水面以上的固定距离 在我看来,有许多问题需要克服: 照明条件 根据一天中的时间等,岩石可能比水亮或比水亮 有时岩石的颜色会非常接近水 遮阳帘的位置将在一天中移动
- 根据一天中的时间等,岩石可能比水亮或比水亮
- 有时岩石的颜色会非常接近水
- 遮阳帘的位置将在一天中移动李>
- 根据水的粗糙程度,有时水中可能会有岩石的反射
- 岩石的形状不均匀李>
- 根据岩石类型、地衣生长等,岩石的外观会发生变化
任何想法都将不胜感激 我不认为边缘检测是检测岩石的最佳方法。其他物体,如山,甚至水中的反射,都会产生边缘 我建议您尝试使用像素分类方法从图像背景中分割岩石:
- 对于图像中的每个像素,从以该像素为中心的NxN邻域中提取一组图像描述符
- 选择一组图像并手动将像素标记为岩石或背景
- 使用标记的像素和相应的图像描述符来训练分类器(例如朴素贝叶斯分类器)
由于岩石往往具有相似的纹理,我将使用纹理图像描述符来训练分类器。例如,您可以尝试从每个颜色通道(R、G、B)中提取一些统计度量,如强度值的平均值和标准偏差。通过颜色分割找到岩石,并通过边缘检测找到顶部 为了找到水位,我会尝试找到所有的水岩边界,以及地平线(如果可能的话),然后在水面上拟合一个平面。 这样你就不用担心岩石的反射了 如果您知道相机与水之间的俯仰角,并且相机水平放置(滚动),则更容易操作 另外,这比我想象的要困难得多——你不知道到所有岩石的距离,所以安装飞机很困难
反射实际上是找到标高的理想方法,在岩石边缘检测中查找对称路径边缘并拾取顶点?像素分类可能在这里起作用,但不会产生100%的精度。数据的差异非常大,岩石有不同的颜色(也被灯光“破坏”)和不同的纹理。因此,我们也必须考虑全球信息 处理的问题是前景提取。我知道有两种方法
这两种方法都可能存在反射问题(像素分类肯定会有)。如果是这种情况,您可以尝试找到近似的垂直对称,并删除下部(如果有)。您还可以要求用户在收集图形切割统计数据时将反射标记为背景。他们在处理同一问题时也有一些工作:(虽然我看不到您的问题的解决方案)看起来您可能可以进一步调整边缘检测器这是一个视觉问题;除非你只是想帮助改进边缘检测器。你有太多的未知数。仅仅给出这些2D图像,您永远无法可靠地测量岩石的高度。你怎么知道最高点在哪里?如果你设置了立体摄像机,再加上距离信息,你可以更接近真实的结果。@koan-Hmm。。通过在距离较远的地方进行测量,那么在这些图片中,最高点可能更容易发现。。。我知道这是一个有很多未知因素的棘手问题,但我想我无论如何都会尝试一下。顺便说一句,我添加了计算机视觉标签。岩石将在图像中居中,因此在图像中找到岩石不是问题。但你可能指的是从图像中提取岩石。将一个平面拟合到水面是有意义的,但是y如何才能