私は次のようにTIFF形式のタイプuint16
のグレースケール画像を読み取るために、低レベルの機能(fopen
とfread
)を使用しようとしている:グレースケールイメージを読み取るために、低レベルの関数(imreadではなく)を使用するにはどうすればよいですか?
fid = fopen(filepath,'r');
img = fread(fid,[ncolms, nrows], 'uint16=>uint16')';
得られた画像マトリックスは、単に使用することによって得られたものとは異なりますimread
:
img = imread(filepath);
得られた画像(左はfread
により、右がimread
によるものである)を以下に示す:
明白な輝度の違いに加えて、fread
画像に画像の上端に何らかのアーチファクトがあることに気付くこともあります。私はこれがイメージを読むという異なるメカニズムのせいであると考えます。
私は、彼らができれば、imread
を使用する同等に、画像(グレースケールではなく、バイナリ)を読むためにfopen
とfread
のような低レベルの関数を使用する方法を知りたいです。
私は強引だとは限りませんが、あなたは[回答を受け入れる]ことなくかなりの質問をしました(http://stackoverflow.com/help/accepted-answer)。あなたは*あなたのことを気にする必要はありませんが、答えが本当に助けてあなたの質問に答えたなら、それはうれしいことです。 – gnovice