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

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

问题描述:

我用MATLAB命令 a =('图像地址') 然后我创建了另一个变量c c = imread('图像的地址') 现在我使用了相同的图像在这两种情况下。当我使用尺寸命令时,它显示两个不同的尺寸。 大小(a)如何可能给出与大小(c)不同的大小。 尽管我在两种情况下都使用了相同的图像,但对于变量a和c。MATLAB中相同图像的大小可以以不同的方式显示吗?

我假设你完全是你在你的问题中写的。您的代码将是如下:

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

这意味着变量a是由一些字符和可变c表示的字符串由UINT8阵列表示的图像。 在它们上应用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这意味着数组相等。当然,他们具有相同的sizeclass由可变c表示的图像:

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

哈哈哈我完全错过了'了'是文件名的字符串。我以为'imread'也在那里做。 +1。 – rayryeng

+1

对我来说,这是尺寸可能不同的唯一可能性。但是我花了一段时间才看到'imread'还没有在那里执行;-) – Matt