如何更准确地将一对X,Y点十进制转换为图像?

问题描述 投票:0回答:1

通常这个表大约有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是不同的。如果所有点都被向上舍入或向下舍入,则也可能存在彼此重叠的点。

matlab image-processing computer-vision
1个回答
0
投票

我看到两种方法,您可以通过将图像分级为N * 600而不是600x600(例如6000x6000)来增加分辨率,然后每个0.1值将在不同的像素中。或者,您可以使用像5x5高斯符号= 1的分布卷积您的1像素,该分布将捕获该点位置周围的展开。例如,使用exp(- ((x-xn).^2+(x-yn).^2)/2),其中xnyn是你问题中的第n个点坐标,xy是通过[x y]=meshgrid(1:600)或任何你的图像大小获得的....

© www.soinside.com 2019 - 2024. All rights reserved.