为什么MatLab的imread()和R的readPNG()会给出不同的结果?

时间:2017-04-11 08:15:47

标签: r image matlab

我想通过使用R来实现PCA到图像文件。但是当我比较使用MatLab和R读取图像的结果时,它会得到不同的结果。

A = double(imread('bird_small.png'));

使用MatLab和

A <- readPNG('bird_small.png')

使用R的png包给出不同的矩阵。这使我无法继续进行R.我做错了什么?

感谢。

每个输出的第一个变量;

来自MatLab&gt;&gt;

A(1,1,1:3)

[1] 219 180 103

来自R&gt;&gt;

A[1,1,1:3]

[1] 0.8588235 0.7058824 0.4039216

图像是; http://imgur.com/J96qKq0

1 个答案:

答案 0 :(得分:2)

[219 180 103] ./ 255 = 0.8588 0.7059 0.4039

表示R已将您的png图像(它包含0到255之间的uint8值)转换为[0-1]范围内的浮点值。 要将它们转换回来,只需乘以255即可。