2017-07-21 1 views
0

私はインターネットからカメラマンの画像を得ました。私は同じコードを試みた入力RGB画像またはカラーマップカメラマンの画像は、matlabとオクターブで色とグレースケールとして読み取られました

いずれかでなければなりません:

エラー:rgb2gray私は は、それが次のエラーを示し

I=imread('original_cameraman.jpg'); 
original = im2double(rgb2gray((I))); 

オクターブ

で次のコマンドを実行しようとしましたmatlabでそれは正しく動作します。 Matlabは画像を色として読み込み、オクターブはグレースケールとして読み取ります。理由は何ですか?コードを正しくオクターブで実行するにはどうすればよいですか?私は使用を以下に示し

カメラマンの画像:enter image description here

答えて

2

あなたの埋め込まれた画像は、既にグレースケールです:

$ gm identify -verbose original_cameraman.jpg.jpg 
Format: JPEG (Joint Photographic Experts Group JFIF format) 
    Geometry: 512x512 
    Class: DirectClass 
    Type: grayscale 
    Depth: 8 bits-per-pixel component 
    Channel Depths: 
    Gray:  8 bits 
    Channel Statistics: 
    Gray: 
     Minimum:      0.00 (0.0000) 
     Maximum:     65535.00 (1.0000) 
     Mean:     30296.32 (0.4623) 
     Standard Deviation:  15987.34 (0.2440) 

のでrgb2gray

+0

を呼び出す必要MathWorks社のMATLABを使用してそれを試していないしてください。 matlabでrgb2grayはこの画像で動作します – Sharon

+0

そして、matlabの 'rgb2gray'は何をしますか?入力を出力として返すだけですか?では、あなたの問題は何ですか? Taht Octaveはグレースケール画像を入力としてフィードし、Matlabがそれを無視するとエラーになりますか? – Andy

+0

しかし、matlabは「I」を512 * 512 * 3の行列として示しています。ここでオクターブは512 * 512と表示されます。もし私がいくつかの愚かさを求めているなら、私を許してください。しかし、私の知る限りでは、512 * 512 * 3は 'I'はカラー画像であることを意味します。 – Sharon

関連する問題