私はTIF画像を持っています。そのタイプはfloat32
です。形状は(128*128)
(グレースケール画像)です。すべてのピクセル値は範囲です[0.0, 1.0]
画像を読み込んで再び画面に表示するときのフォーマットの変更
skimage
を使用して読み取った場合、matplotlib
を使用して出力します。出力イメージはRGBイメージのように見えます。私が代わりにmatplotlib
、output=plt.imread(os.path.join(image_path,raw_image_name))
を使用して画像を読み込むしかし
from skimage import io
import matplotlib.pyplot as plt
output=io.imread(os.path.join(image_path,raw_image_name))
print(output.dtype)
print(output.shape)
print(output.max())
print(output.min())
plt.imshow(output)
plt.show()
、。ピクセル値が255と0になることがわかりました。出力画像は、2番目の画像に示すように黒くなります。私は混乱していますが、これはどのように機能しますか?私の推測では、読書プロセス中にいくつかのdtypeの変更が起こっているということです。
ありがとうございました。したがって、画像がtifやunit8の代わりにtypeのファイルとして保存された場合、matplotlibを使用して画像を読むのは正しくありません。私の理解は正しいのですか? – user297850
ほとんどのTIF画像はuint8などで保存されると思いますが、少なくとも顕微鏡画像データの場合、私は0と1の間の値を持つtifファイルが見つかったとは思わないと思います。 uint8でないデータを読み込むにはmatplotlibを使用しないでください。uint16/uint32でどのように実行されるか分かりません。 – lhcgeneva