[Python] tiffファイルを読み込んで表示する方法
PythonでTIFFファイルを読み込んで表示するには、Pillow
ライブラリを使用するのが一般的です。
まず、Pillow
をインストールし、Image
モジュールを使ってTIFFファイルを読み込みます。
次に、matplotlib
のpyplot
を使って画像を表示できます。
Pillow
のImage.open()
でTIFFファイルを読み込み、show()メソッド
で表示することも可能です。
TIFFは複数ページを含むことがあるため、ページごとに処理する場合はループを使います。
TIFFファイルとは
TIFF(Tagged Image File Format)は、高品質な画像を保存するためのファイル形式です。
主に印刷業界やデジタル画像処理で広く使用されており、可逆圧縮や非圧縮のオプションを持つため、画像の劣化を最小限に抑えることができます。
TIFFファイルは、複数のページやレイヤーを持つことができるため、スキャンした文書や高解像度の写真を扱う際に特に便利です。
また、TIFFは多くのプラットフォームやアプリケーションでサポートされており、画像の保存や共有において非常に柔軟性があります。
PythonでTIFFファイルを扱うための準備
必要なライブラリのインストール
TIFFファイルを扱うためには、主にPillowとMatplotlibという2つのライブラリを使用します。
これらのライブラリは、Pythonのパッケージ管理ツールであるpipを使って簡単にインストールできます。
以下のコマンドを実行して、必要なライブラリをインストールしてください。
pip install Pillow matplotlib
Pillowライブラリの概要
Pillowは、Pythonで画像処理を行うための強力なライブラリです。
元々のPIL(Python Imaging Library)の後継として開発され、TIFFを含む多くの画像フォーマットの読み込み、加工、保存が可能です。
Pillowは、画像のリサイズ、回転、フィルタ適用など、さまざまな画像処理機能を提供しています。
また、TIFFファイルの複数ページの処理やメタデータの取得もサポートしています。
Matplotlibライブラリの概要
Matplotlibは、データの可視化を行うためのライブラリですが、画像の表示にも利用できます。
特に、画像をグラフとして表示する際に便利です。
Matplotlibを使用することで、TIFFファイルを簡単に表示し、他のデータと組み合わせて視覚的に分析することができます。
画像の表示だけでなく、カスタマイズやアノテーションの追加も可能です。
Pillowを使ったTIFFファイルの読み込み
Image.open()メソッドの使い方
Pillowライブラリを使用してTIFFファイルを読み込むには、Image.open()メソッド
を使用します。
このメソッドは、指定したファイルパスの画像を開き、画像オブジェクトを返します。
以下は、Image.open()メソッド
の基本的な使い方の例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
print(image.format) # 画像のフォーマットを表示
TIFF
TIFFファイルの基本的な読み込み方法
TIFFファイルを基本的に読み込むには、上記のImage.open()メソッド
を使用します。
読み込んだ画像は、PillowのImage
オブジェクトとして扱われ、さまざまな操作が可能です。
以下は、TIFFファイルを読み込んで表示する例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# 画像を表示する
image.show()
複数ページのTIFFファイルの処理方法
TIFFファイルは、複数のページを持つことができます。
Pillowでは、Image
オブジェクトのseek()メソッド
を使用して、特定のページにアクセスできます。
以下は、複数ページのTIFFファイルを処理する例です。
from PIL import Image
# 複数ページのTIFFファイルを開く
image = Image.open('multi_page_example.tiff')
# ページ数を取得
num_pages = image.n_frames
print(f'ページ数: {num_pages}')
# 各ページを表示
for i in range(num_pages):
image.seek(i)
image.show()
ページ数: 3
TIFFファイルのメタデータの取得方法
TIFFファイルには、画像に関するメタデータが含まれていることがあります。
Pillowを使用して、これらのメタデータを取得することができます。
以下は、TIFFファイルのメタデータを取得する例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# メタデータを取得
metadata = image.info
print(metadata)
{'dpi': (300, 300), 'compression': 'tiff_lzw'}
このように、Pillowを使用することで、TIFFファイルの読み込みやメタデータの取得が簡単に行えます。
TIFFファイルの表示方法
Pillowのshow()メソッドを使った表示
Pillowライブラリには、画像を簡単に表示するためのshow()メソッド
があります。
このメソッドを使用すると、デフォルトの画像ビューアでTIFFファイルを表示できます。
以下は、show()メソッド
を使った表示の例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# 画像を表示する
image.show()
このコードを実行すると、指定したTIFFファイルがデフォルトの画像ビューアで表示されます。
Matplotlibを使った表示方法
Matplotlibを使用すると、画像をグラフとして表示することができます。
特に、データの可視化と組み合わせて使用する際に便利です。
以下は、Matplotlibを使ってTIFFファイルを表示する例です。
import matplotlib.pyplot as plt
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# 画像を表示する
plt.imshow(image)
plt.axis('off') # 軸を非表示にする
plt.show()
このコードを実行すると、MatplotlibのウィンドウにTIFFファイルが表示されます。
OpenCVを使った表示方法
OpenCVも画像処理に広く使用されるライブラリで、TIFFファイルを表示することができます。
OpenCVを使用する場合、まずPillowで画像を読み込み、NumPy配列に変換する必要があります。
以下は、OpenCVを使った表示の例です。
import cv2
from PIL import Image
import numpy as np
# TIFFファイルを開く
image = Image.open('example.tiff')
# Pillowの画像をNumPy配列に変換
image_np = np.array(image)
# 画像を表示する
cv2.imshow('TIFF Image', image_np)
cv2.waitKey(0) # 任意のキーが押されるまで待機
cv2.destroyAllWindows() # ウィンドウを閉じる
このコードを実行すると、OpenCVのウィンドウにTIFFファイルが表示されます。
表示されたウィンドウは、任意のキーを押すことで閉じることができます。
TIFFファイルの加工と保存
Pillowを使った画像の加工
Pillowライブラリを使用すると、TIFFファイルを簡単に加工することができます。
例えば、画像のフィルタを適用したり、色を変更したりすることが可能です。
以下は、Pillowを使って画像にフィルタを適用する例です。
from PIL import Image, ImageFilter
# TIFFファイルを開く
image = Image.open('example.tiff')
# 画像にぼかしフィルタを適用
blurred_image = image.filter(ImageFilter.BLUR)
# 加工後の画像を表示
blurred_image.show()
このコードを実行すると、元の画像にぼかし効果が適用された画像が表示されます。
画像のリサイズや回転
Pillowを使用すると、画像のリサイズや回転も簡単に行えます。
以下は、画像をリサイズし、90度回転させる例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# 画像をリサイズ(幅300px、高さ200px)
resized_image = image.resize((300, 200))
# 画像を90度回転
rotated_image = resized_image.rotate(90)
# 加工後の画像を表示
rotated_image.show()
このコードを実行すると、リサイズされ、90度回転した画像が表示されます。
画像のフォーマット変換
Pillowを使用して、TIFFファイルを他の画像フォーマットに変換することもできます。
以下は、TIFFファイルをJPEGフォーマットに変換する例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# JPEGフォーマットに変換して保存
image.convert('RGB').save('converted_image.jpg', 'JPEG')
このコードを実行すると、TIFFファイルがJPEGフォーマットに変換され、converted_image.jpg
として保存されます。
加工後のTIFFファイルの保存方法
加工したTIFFファイルを保存するには、save()メソッド
を使用します。
以下は、加工後のTIFFファイルを保存する例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# 画像をリサイズ
resized_image = image.resize((300, 200))
# 加工後の画像をTIFFフォーマットで保存
resized_image.save('resized_image.tiff', 'TIFF')
このコードを実行すると、リサイズされた画像が新しいTIFFファイルとして保存されます。
これにより、元の画像を保持しつつ、加工した画像を別のファイルとして保存することができます。
TIFFファイルの応用例
TIFFファイルの一部を切り出す方法
Pillowを使用すると、TIFFファイルの特定の部分を切り出すことができます。
crop()メソッド
を使って、画像の一部を指定した範囲で切り取ることが可能です。
以下は、TIFFファイルの一部を切り出す例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# 切り出す範囲を指定(左、上、右、下)
crop_area = (100, 100, 400, 400)
cropped_image = image.crop(crop_area)
# 切り出した画像を表示
cropped_image.show()
このコードを実行すると、指定した範囲の画像が切り出されて表示されます。
TIFFファイルの圧縮と解凍
TIFFファイルは、圧縮オプションを持つため、ファイルサイズを小さくすることができます。
Pillowを使用して、TIFFファイルを圧縮して保存することができます。
以下は、LZW圧縮を使用してTIFFファイルを保存する例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# LZW圧縮を使用して保存
image.save('compressed_image.tiff', 'TIFF', compression='tiff_lzw')
このコードを実行すると、LZW圧縮されたTIFFファイルが保存されます。
圧縮されたファイルは、元の画像を保持しつつ、ファイルサイズを小さくします。
TIFFファイルのバッチ処理
複数のTIFFファイルを一度に処理するバッチ処理も可能です。
以下は、指定したフォルダ内のすべてのTIFFファイルをリサイズして保存する例です。
import os
from PIL import Image
# TIFFファイルが保存されているフォルダ
input_folder = 'input_tiff_files'
output_folder = 'output_tiff_files'
# フォルダ内のすべてのTIFFファイルを処理
for filename in os.listdir(input_folder):
if filename.endswith('.tiff'):
# TIFFファイルを開く
image = Image.open(os.path.join(input_folder, filename))
# 画像をリサイズ
resized_image = image.resize((300, 200))
# 加工後の画像を保存
resized_image.save(os.path.join(output_folder, filename))
このコードを実行すると、指定したフォルダ内のすべてのTIFFファイルがリサイズされ、別のフォルダに保存されます。
TIFFファイルをPDFに変換する方法
Pillowを使用して、TIFFファイルをPDFフォーマットに変換することもできます。
以下は、TIFFファイルをPDFに変換して保存する例です。
from PIL import Image
# TIFFファイルを開く
image = Image.open('example.tiff')
# PDFに変換して保存
image.save('converted_image.pdf', 'PDF')
このコードを実行すると、指定したTIFFファイルがPDFフォーマットに変換され、converted_image.pdf
として保存されます。
これにより、TIFFファイルを簡単にPDF形式で共有することができます。
まとめ
この記事では、Pythonを使用してTIFFファイルを読み込み、表示、加工、保存する方法について詳しく解説しました。
また、TIFFファイルの特性や、PillowやMatplotlib、OpenCVといったライブラリを活用した具体的な操作例も紹介しました。
これらの知識を活用することで、TIFFファイルを効果的に扱い、さまざまな画像処理のニーズに応じた応用が可能になります。
ぜひ、実際にコードを試してみて、TIFFファイルの処理に挑戦してみてください。