2017-08-02 7 views
0

Octapeを使用して.tif形式の医用画像データを読み込もうとしています。それで、https://fiji.sc/のソフトウェアだけが、私が持っている医学的画像を読む能力を持っています。私が参照している画像のサンプルはthisです。この画像はフィジーでのみ.tif形式で読むことができます。画像はjpg画像に変換することもできます。データポイントの後でのみ、他の画像編集ソフトウェアに表示されます。問題は、オクターブにロードして読みたいということです。現時点では不可能です。 imshow()のオクターブでの機能では、与えられた.tifファイルを視覚化できません。Octaveでtifファイルを読む際の問題

誰かがそのようなファイル形式を読んだ経験がある場合は、私に知らせてください。ありがとう。

答えて

3

リンクされた画像は、16ビットのグレースケール画像です($ gm identify -verbose hello.tifを参照)。だから、GNU Octaveの中にそれをロードすることができます:

img = imread ("hello.tif"); 
hist (img(:), 200);   # show histogram 

histogram of image

ああ!、あなたのイメージの主な情報は、範囲0-600(おそらく使用される画像aquisitionシステムは11または12ビットの分解能を持っていた)であり、

imagesc (img, [0 600]) 
colorbar 

imagesc with viridis colormap

が、これはあなたが欲しいものです:とても規模とプリントが色としてこの部分エンコード(ビリディス)イメージすることができますか?もちろん、我々はまた、グレーカラーマップを使用して試すことができます:colormap gray

これはまだあなたの必要性に合わない場合は、あなたが本当にあなたが見ることを期待するものを説明しなければならない....

+2

あなたはなぜフィジーは(説明したいかもしれませんImageJ)はデフォルトで動作します。理由は、8ビット以外の画像の場合、ImageJは画像の最大値と最小値のみを使用するからです。他の値を設定することもできますが、最大値と最小値の間だけを設定することもできます。データ型の実際の制限は決して使用されません。ほとんどの16ビット画像は、最初は16ビットカメラから来たことがないので、それはある意味があります。 – carandraug

+0

私はフィルターを使って画像をノイズ除去することに興味があります。現時点では、 '' imshow() 'をオクターブで使うことはできません。私が発見した理由の1つは、画像が16ビットでエンコードされていると言われていますが、オクターブでは8ビットの画像しか表示できないということです。それで、 'imshow()'を使ううまい方法があります。 – motiur

+1

@モチール:上に示したように、「オクターブは8ビットの画像しか表示できません」というのは当てはまりません。上記の画像を撮影したカメラは、11ビットまたは12ビットの解像度を持ち、16ビットの整数として保存されています。したがって、それ以降の処理では0..1の範囲にスケールするのが一般的です。 LIMITSを使わないで 'imshow'を使うと、値0は黒、2^16-1は白として表示されますが、整数の範囲は0..2000です(ヒストグラム参照)。ここではマジックはありません – Andy

関連する問題