1

例如,我有一组方向相同的坐标:

垂直投影坐标:8,15;9,27; 10,40; 7,55; 5,68。

水平投影坐标:8,27;20,28; 36,26; 51,25; 64,27;

如何对齐垂直投影和水平投影中的坐标,以便所有垂直投影坐标都有一个 X 值,例如:8,15;8,27; 8,40;8,55; 8,68。并且对于水平投影具有相同的 Y 值,例如:8,28;20,28; 36,28; 51,28; 64,28?

盲文 我已经检测到图像中每个点的坐标,但坐标并没有完全对齐(参见上面的坐标示例)。

这就是为什么,我真的需要任何建议如何将检测到的点对齐到每条线的完美对齐(如颜色突出显示)。

我听说过主成分分析,但如果我使用 PCA,我不知道从哪里开始,因为几乎没有对齐坐标的好例子。

如果还有其他好的推荐,我真的希望有人愿意分享。

任何帮助将不胜感激。谢谢

4

1 回答 1

0

嗯,由于您使用 OpenCV,您可能会对这种基于像素尺度矩阵操作的方法感兴趣:

1)创建一个二进制图片(黑色/白色),因此您初始化一个黑色图片(或只是一个所需大小的零矩阵)。

2)由于你已经得到了未排序的点(因此矩阵索引),你可以做一个 for 循环。因此,对于每个点,您都将二进制图像中像素的颜色更改为白色。如果你必须照顾内存,你可以使用稀疏矩阵。

3)要获得 x 或 y 中的排序列表,您只需遍历二进制图像的相应行/列并返回每个白色像素的列/行。

结果,您最终得到了一个漂亮的二进制图像和您的排序点。

编辑:由于您想在一个组件中进行一些平均,这可以通过布尔表达式来处理,这样您就可以将所需范围内的一个坐标设置为特定值。第二种解决方案是,在提取点之前旋转输入图像。在 OpenCV 中已经实现了旋转,你只需要找出角度。

干杯 TL

于 2013-05-28T11:08:13.993 回答