如何更准确地将一对X,Y点十进制转换为图像?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更准确地将一对X,Y点十进制转换为图像?相关的知识,希望对你有一定的参考价值。
通常这个表大约有600个点,但我不想全部输入,假设我有这样的点:
240.021000000000 291.414100000000
250.985100000000 297.566300000000
260.143500000000 310.125800000000
270.605100000000 315.355400000000
279.775500000000 327.352000000000
288.302300000000 335.765900000000
301.487400000000 348.374900000000
313.892100000000 340.501400000000
323.391400000000 328.044800000000
334.615100000000 322.182400000000
左边的数字是X,右边的数字是有“东西”的坐标的Y,或者说颜色是白色,休息是黑色。
我想把它变成一个图像,到目前为止我做的是:
% Added 50 more pixels to not stick to edge of image
image = uint8(zeros(max(table(:, 1))+50, max(table(:, 2)+50))
for i = size(table(:))
image(round(table(i, 1)), round(table(i, 2))) = 256;
end
imshow(image);
我想知道这是多么准确,我如何改进它,或者我是否可以改进它?
这里的原因是我将为两个表执行此操作并且需要比较属于这些表的两个图像的相似性,但我甚至没有图像并且舍入不像自270.49999999和270.5000001类似的最佳方式但是270和271是不同的。如果所有点都被向上舍入或向下舍入,则也可能存在彼此重叠的点。
我看到两种方法,您可以通过将图像分级为N * 600而不是600x600(例如6000x6000)来增加分辨率,然后每个0.1值将在不同的像素中。或者,您可以使用像5x5高斯符号= 1的分布卷积您的1像素,该分布将捕获该点位置周围的展开。例如,使用exp(- ((x-xn).^2+(x-yn).^2)/2)
,其中xn
和yn
是你问题中的第n个点坐标,x
和y
是通过[x y]=meshgrid(1:600)
或任何你的图像大小获得的....
以上是关于如何更准确地将一对X,Y点十进制转换为图像?的主要内容,如果未能解决你的问题,请参考以下文章