简短介绍:我正在研究3D激光扫描设备,该设备使用被激光照射的物体的图片创建点云。
每张图基本上都表示代表物体表面的线。 然后,我要做的是将每个像素的亮度值存储在2D数组中,最后生成一个矩阵,该矩阵在照明线的位置放置一个数字。我可以借此进一步计算点云。我正在用C ++进行的所有操作。
现在要解决的问题:
在将亮度信息存储在矩阵内部之后,我得到了一条复杂的线,该线的厚度为几个像素(厚度不均匀)。我需要它正好是1像素宽。到目前为止,我要么计算了直线的平均值,要么使用了权重函数。
这仅在您的线条在整个图片/矩阵中大部分垂直或水平延伸的情况下才有效,因为您可以为每条单独的线条或列计算正确的值。
我现在有图片/矩阵,其中线条的形状更加复杂,因此这些简单的解决方案将不再起作用。这是两个示例:
如何计算平均值或将权重函数放在这些线上,以便将其减小到1px的厚度?我需要一种可以自动执行此操作的算法,因为我有几百张图片,其中的线条可以有不同的形状,因此单独编辑所有图片太费时/不可能。
我希望我能以某种方式说话,而不是使事情变得复杂;)