MATLAB中相同图像的大小可以用不同的方式显示吗?

时间:2015-06-19 20:37:05

标签: matlab image-processing

我通过命令在MATLAB中输入了一个图像 a =('图像的地址') 然后我创建了另一个变量c as c = imread('图像的地址') 现在我在两种情况下都使用了相同的图像。当我使用size命令时,它会显示不同的大小。这怎么可能 尺寸(a)的尺寸与尺寸不同(c)。 虽然我在两种情况下使用相同的图像,但对于变量a和c都是如此。

1 个答案:

答案 0 :(得分:1)

我认为你完全按照你在问题中所写的内容做了。您的代码如下:

a = ('onion.png');
c = imread('onion.png');

这意味着变量a是由一些字符表示的字符串,变量c是由uint8-array表示的图像。 在它们上应用size - 函数会产生不同的结果,因为它根本不是同一个对象。这可以使用class - 函数进行验证。

sizeOfA  = size(a)   >>  [1 9]
sizeOfC  = size(c)   >>  [135 198 3]
classOfA = class(a)  >>  char
classOfC = class(c)  >>  uint8

编辑:您现在可以执行的操作是使用字符串a加载相同的图像。因为只是通过为变量分配文件名,所以不会自动读取图像。为了证明这会产生完全相同的结果,我们可以这样做:

d = imread(a);
isequal(c,d)

返回1表示数组相等。当然,它们与变量size所代表的图像具有相同的classc

sizeOfD  = size(d)   >>  [135 198 3]
classOfD = class(d)  >>  uint8