亲爱的stackoverflow社区,
我想我有一个相对容易的问题但是,我不知道如何解决它。
所以我有这个图,这是我所居住的城镇的地图。由于Matlab不可能知道它是一张地图,所以高度和长度以像素为单位(我猜)。但是,我希望以这种方式找到或定义现实值,它以米/公里为单位进行测量,因为我正在编写一个汽车共享模拟器,并且它并不优雅,因此每个像素会丢失一定数量的电荷。因此,我希望事先定义我们在不改变图形的实际尺寸的情况下处理米而不是像素。因此,让我们假设图片的分辨率为1024x768,我希望Matlab将这个“解决方案”解释为5公里宽和3公里高。
现在,我只是使用imread:
hf = figure();
[B, map] = imread('Hannoverosm.png');
C = imresize(B, 0.975);
imshow(C, map)
答案 0 :(得分:1)
难道你不能只创建从像素空间转换到km空间的函数吗?
function km = pixels2km(pixels)
km = pixels*(5/1024);
end
function pixels = km2pixels(km)
pixels = km*(1024/5);
end
实际上这些计算非常简单,您可能甚至不需要这些功能。此外,由于像素空间是离散的,因此您需要确定最佳舍入方法(可能floor
或ceil
,具体取决于您创建'原点'的哪个角落