我正在尝试使用OpenCV测量灯丝(用于3D打印的塑料材料)的尺寸
我要做的是测量细丝尺寸(用于3D打印的塑料材料)。我的想法是,我使用led面板照亮灯丝,然后用相机拍摄图像,对图像进行预处理,应用边缘检测并计算其尺寸。大多数长丝都是由一种颜色制成的细小材料,易于预处理并获得良好的效果。
问题来自透明灯丝。我无法获得有用的结果。我想寻求一点帮助,或者有人可以向我推正确的方向。我已经尝试过将图像裁剪到比灯丝高一点的高度,并且将宽度裁剪为几个像素,并使用这些图像中的像素数来计算尺寸,但是效果不是很好。所以现在我在这里,尝试通过边缘检测做到这一点
下面的代码对于普通的灯丝工作得很好,问题是当我尝试将其用于透明灯丝时。我尝试过为Canny函数调整阈值。我尝试了不同的色彩空间。但是我无法获得结果。
可能有助于理解的图像: https://imgur.com/gallery/CIv7fxY
routes.yaml
答案 0 :(得分:0)
您可以假设图像是在相同条件下拍摄的。
您的主要问题是,透明灯丝中的反射被检测为边缘。但是,由于图像相对简单,没有任何其他边缘,因此您可以简单地拍摄上下边缘,并测量它们之间的距离。
一种简单的方法是拍摄两条垂直线(例如,图像侧面),找到与该线相交的边缘(基本上遍历图像中的一列并找到边缘像素),并连接最高点和最低点形成细丝的边缘。这也消除了灯丝中的曲率,我认为您的应用不需要此曲率。
您可能需要使用3或4条垂直线,以提高鲁棒性。