我通过命令在MATLAB中输入了一个图像 a =('图像的地址') 然后我创建了另一个变量c as c = imread('图像的地址') 现在我在两种情况下都使用了相同的图像。当我使用size命令时,它会显示不同的大小。这怎么可能 尺寸(a)的尺寸与尺寸不同(c)。 虽然我在两种情况下使用相同的图像,但对于变量a和c都是如此。
答案 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
所代表的图像具有相同的class
和c
:
sizeOfD = size(d) >> [135 198 3]
classOfD = class(d) >> uint8