2017-04-11 74 views
0

我想通過使用R實現PCA到圖像文件。但是,當我比較使用MatLab和R讀取圖像的結果時,會給出不同的結果。爲什麼MatLab的imread()和R的readPNG()會給出不同的結果?

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

該圖像是; http://imgur.com/J96qKq0

+0

矩陣如何不同?也許你需要在處理之前轉置它(例如使用't()')? –

+0

差異在於數值。列和行號相等 – boyaronur

+1

請提供matlap輸出的值,並提供示例png文件(或R輸出)。 – zx8754

回答

2

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

Apperently R已經轉換您的PNG圖像(它含有0到255之間的值UINT8)範圍到浮點值[0-1] 。 將它們轉換回來,然後再乘以255.

+0

謝謝!我沒有認出它:) – boyaronur

+0

@boyaronur考慮標記答案爲接受,如果它解決了問題 –

相關問題