我目前正在帮助一个从事地球物理项目的朋友,我绝不是图像处理专家,而是玩起来很有趣
围绕这些问题。 =)
目的是估计从表面到顶部从水中伸出的小石头的高度。
实验设备将是安装在带内置激光指示器的测距仪上的〜10MP摄像机。
“操作员”将其指向一块岩石,按一下触发器,该触发器将记录沿岩石照片的距离,
将在图像的中心。
可以假定该设备始终保持在水上一定距离处。
如我所见,有许多问题需要克服:
照明条件
根据一天中的时间等,岩石可能比水或相反的岩石亮。
有时,岩石的颜色会非常接近水。
阴影的位置将全天移动。
根据水的粗糙度,有时可能会反射出水中的岩石。
多元化
岩石的形状不均匀。
根据岩石的类型,地衣的生长等,会改变岩石的外观。
幸运的是,不缺少测试数据。水中的岩石图片很容易获得。以下是一些示例图像:
我在图像上运行了边缘检测器,尤其是。在第四张照片中,对比度差使难以看到边缘:
任何想法将不胜感激!
最佳答案
我认为边缘检测不是检测岩石的最佳方法。其他物体,如高山或什至是水中的反射,都会导致边缘。
我建议您尝试使用像素分类方法从图像背景中分割出岩石:
对于图像中的每个像素,从以该像素为中心的NxN邻域中提取一组图像描述符。
选择一组图像,然后手动将像素标记为岩石或背景。
使用标记的像素和相应的图像描述符来训练分类器(例如,朴素贝叶斯分类器)
由于岩石往往具有相似的纹理,因此我将使用纹理图像描述符来训练分类器。例如,您可以尝试从每个颜色通道(R,G,B)中提取一些统计量,例如强度值的平均值和标准偏差。
关于image-processing - 寻找岩石水平面以上的高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4735650/