2011-09-15 20 views
0

私はファイルからいくつかのデータを読み込もうとしており、生データとして出力しています。ファイルは画像で、出力ファイルは1行ずつデータを書き込んでいます。 MATLABでMATLAB memmapfileでデータを視覚化する方法は?

、私は次の操作を行います

bin_path = 'myfile.bin'; 
m = memmapfile(bin_path, 'Format', {'uint16', [5000 5000], 'im'}); 
disp(m) 
figure, imagesc(m.Data.im), colormap(gray) 

私は画像を取得したい考え、データを表示しようとします。しかし、それはイメージではなく、単なる黒と灰色と白の線の束です。

この設定のmatlab部分は正しく設定されていますか?

答えて

1

ファイルが正方形の画像内のピクセルを表す正確に5000x5000x2バイトで構成されていると、これはうまくいくようです。 memmapfileを使用するのは珍しいことです。実際、Matlabにその関数が存在することはわかりませんでした。生画像を読むには、単にfreadを使うほうがはるかに一般的です。画像が標準ファイル形式(JPG、PNGなど)の場合は、imreadを使用してください。

イメージが実際に5000 x 5000 x uint16であると仮定すると、エンディアン問題に悩まされている可能性があります。データを取得するにはfopenfreadを試してみてください。 Matlabのfopenは、エンディアン変換を行うかどうかを示す引数を受け取ります。