【发布时间】:2017-04-11 08:15:47
【问题描述】:
我想使用 R 实现 PCA 到图像文件。但是当我比较使用 MatLab 和 R 读取图像的结果时,它给出了不同的结果。
A = double(imread('bird_small.png'));
使用 MatLab 和
A <- readPNG('bird_small.png')
使用 R 的 png 包会给出不同的矩阵。这使我无法继续使用 R。我做错了什么?
谢谢。
每个输出的第一个变量;
来自 MatLab >>
A(1,1,1:3)
[1] 219 180 103
来自 R >>
A[1,1,1:3]
[1] 0.8588235 0.7058824 0.4039216
【问题讨论】:
-
矩阵有何不同?也许您需要在处理之前对其进行转置(例如使用
t())? -
不同之处在于值。列号和行号相等
-
请提供来自 matlap 输出的值,并提供示例 png 文件(或 R 输出)。
-
根据 PNG 子类型,Matlab 可能返回一个indexed image。如果是这种情况,则意味着您获得了一个二维数组
A,其值不是实际颜色,而是指向颜色图的指针,您可以将其作为imread的第二个输出获得,如下所示:[A, cmap] = imread('bird_small.png'); -
我编辑了第一个变量和图像。 @LuisMendo 我认为你是对的,因为 MatLab 矩阵中的所有变量都像索引