numpyを使用してPythonでTIFF(インポート、エクスポート)を操作する 質問する

numpyを使用してPythonでTIFF(インポート、エクスポート)を操作する 質問する

TIFF 画像を開いて numpy 配列にインポートし、ピクセル データを分析して変更し、再度 TIFF として保存するための Python メソッドが必要です。(基本的には、ピクセルごとのそれぞれの値を表すグレースケールの光強度マップです)

TIFF に関する PIL メソッドに関するドキュメントが見つかりませんでした。理解しようとしましたが、「不正なモード」または「サポートされていないファイル タイプ」というエラーしか表示されませんでした。

ここで何を使う必要がありますか?

ベストアンサー1

まず、テスト用のTIFF画像をダウンロードしました。このページと呼ばれますa_image.tif。次に、次のように PIL で開きました。

>>> from PIL import Image
>>> im = Image.open('a_image.tif')
>>> im.show()

これは虹の画像を示しています。NumPy 配列に変換するのは、次のように簡単です。

>>> import numpy
>>> imarray = numpy.array(im)

画像のサイズと配列の形状が一致していることがわかります。

>>> imarray.shape
(44, 330)
>>> im.size
(330, 44)

配列にはuint8次の値が含まれます。

>>> imarray
array([[  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246],
       ..., 
       [  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246],
       [  0,   1,   2, ..., 244, 245, 246]], dtype=uint8)

配列の変更が完了したら、次のようにして PIL イメージに戻すことができます。

>>> Image.fromarray(imarray)
<Image.Image image mode=L size=330x44 at 0x2786518>

おすすめ記事