Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 定义图像的高度和长度_Matlab_Matlab Figure - Fatal编程技术网

Matlab 定义图像的高度和长度

Matlab 定义图像的高度和长度,matlab,matlab-figure,Matlab,Matlab Figure,亲爱的社区: 我想我有一个相对容易的问题,但尽管如此,我不知道如何解决它 我有一张我居住的城镇地图。因为Matlab不可能知道它是一张地图,所以高度和长度是以像素为单位测量的(我想)。然而,我很想找到或定义以米/公里为单位的真实值,因为我正在编写一个汽车共享模拟器,它并不优雅,它们每像素会损失一定数量的电荷。因此,我想预先定义,我们处理的是米而不是像素,而不改变图形的实际大小。因此,让我们假设图片的分辨率为1024x768,我希望Matlab将此“解决方案”解释为5 km宽和3 km高 现在,我

亲爱的社区:

我想我有一个相对容易的问题,但尽管如此,我不知道如何解决它

我有一张我居住的城镇地图。因为Matlab不可能知道它是一张地图,所以高度和长度是以像素为单位测量的(我想)。然而,我很想找到或定义以米/公里为单位的真实值,因为我正在编写一个汽车共享模拟器,它并不优雅,它们每像素会损失一定数量的电荷。因此,我想预先定义,我们处理的是米而不是像素,而不改变图形的实际大小。因此,让我们假设图片的分辨率为1024x768,我希望Matlab将此“解决方案”解释为5 km宽和3 km高

现在,我只使用imread:

hf = figure();
[B, map] = imread('Hannoverosm.png');
C = imresize(B, 0.975);
imshow(C, map)

难道你不能创建一些函数来从像素空间转换到km空间吗

function km = pixels2km(pixels)
    km = pixels*(5/1024);
end

function pixels = km2pixels(km)
    pixels = km*(1024/5);
end

实际上,这些计算非常简单,你甚至不需要函数。此外,由于像素空间是离散的,因此您需要决定最佳的取整方法(可能是
地板
天花板
,具体取决于您在哪个角点创建“原点”

您希望如何处理这些值?计算距离(以km为单位)像素之间?除非您定义了如何处理图像,否则将距离解释附加到图像上没有多大意义。问题不是您使用的是像素而不是千米,而是您“只有”1024x768个数据点。如果您通过定义X:1pixel=5(km)/1024以千米为单位转换整个程序,那么Y:1pixel=3(km)也是如此/768您必须区分x和y方向,并且您可能会通过处理公里(m)而遇到处理问题不属于像素的位置。你是对的,我需要这些值来计算距离,以及这些值对使用这些值的功能的影响。正如我所说,现在汽车每像素而不是每米都会收费。实际上,我不在乎,但对整个工作评分的人将无法遵循我的决定燃料/费用的消耗。此外,他们不想在我毕业后使用我的代码,因此,它必须易于访问。谢谢你的输入。现在我意识到我的问题是多么愚蠢,因为我已经计算了点之间的距离,我只需将它乘以或除以一个现实的因子。