如何将坐标分布与完美对齐方式对齐?

时间:2013-05-28 06:31:09

标签: c++ algorithm opencv pca

我有一组坐标相同的坐标:

垂直投影的坐标: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?

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

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

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

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

非常感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:0)

嗯,既然你使用的是OpenCV,你可能会采用这种基于像素尺度矩阵操作的方法:

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

2)由于你的点已经未分类(因此矩阵索引),你可以进行for循环。因此,对于每个点,您都可以将二进制图像中像素的颜色更改为白色。如果你必须处理内存,你可以使用稀疏矩阵。

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

结果你得到了一个漂亮的二进制图像和你的分类点。

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

干杯TL