Python|画像ファイルの読み込み

1. はじめに

Pythonで画像処理を行いたいと考えている方にとって、最初の一歩となるのが「画像ファイルの読み込み」です。
この記事では、Pythonで画像ファイル(JPEG、PNGなど)を読み込む方法を、初心者にもわかりやすく解説します。
具体的には、定番ライブラリであるPillow(PIL)OpenCVの使い方を中心に紹介し、それぞれの違いや用途に応じた使い分けも説明します。
Pythonを使って画像を加工・解析・機械学習に活用したい方の基礎力を固める内容です。

 

2. Pythonで画像ファイルを読み込む基本

Pillow(PIL)ライブラリで画像を読み込む

Pillow(旧PIL)は、Python標準の画像処理ライブラリであり、JPEGやPNGなどの画像を簡単に読み込むことができます。
まずはPillowをインストールしましょう。

pip install Pillow

次に、画像を読み込む基本的なコードです。

from PIL import Image

# 画像ファイルを開く
img = Image.open("sample.jpg")

# 画像の情報を表示
print(img.format, img.size, img.mode)

# 画像を表示
img.show()

実行結果:

JPEG (640, 480) RGB
※別ウィンドウで画像が表示されます

OpenCVで画像を読み込む

OpenCVはコンピュータビジョンに特化した強力なライブラリです。色空間の扱い方が異なるため、RGBとBGRの違いに注意が必要です。

pip install opencv-python

OpenCVを使った画像の読み込み方法は以下の通りです。

import cv2

# 画像を読み込む(カラー)
img = cv2.imread("sample.jpg")

# 画像の情報を表示
print(img.shape)

# 画像をウィンドウに表示
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

実行結果:

(480, 640, 3)
※OpenCVウィンドウで画像が表示されます

 

3. よくある使い方・応用例

画像をリサイズする(Pillow)

読み込んだ画像のサイズを変更する例です。

from PIL import Image

img = Image.open("sample.jpg")

# 幅320、高さ240にリサイズ
resized_img = img.resize((320, 240))

# 保存
resized_img.save("resized_sample.jpg")

実行結果:

画像が「resized_sample.jpg」として保存されます(320×240ピクセル)

画像をグレースケールで読み込む(OpenCV)

import cv2

# グレースケールで読み込む
gray_img = cv2.imread("sample.jpg", cv2.IMREAD_GRAYSCALE)

# 表示
cv2.imshow("Gray Image", gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

実行結果:

グレースケール(白黒)画像が表示されます

画像の一部をトリミング(切り出し)する

from PIL import Image

img = Image.open("sample.jpg")

# (左, 上, 右, 下)の座標で切り出す
cropped = img.crop((100, 100, 400, 300))

# 保存
cropped.save("cropped_sample.jpg")

実行結果:

画像の一部が切り出され「cropped_sample.jpg」として保存されます

 

4. 注意点・エラー対策

ファイルが存在しない場合のエラー

存在しないファイルを読み込もうとするとFileNotFoundErrorが発生します。以下のように対策できます。

from PIL import Image
import os

file_path = "sample.jpg"

if os.path.exists(file_path):
    img = Image.open(file_path)
    img.show()
else:
    print("ファイルが見つかりませんでした。")

OpenCVのBGRとPillowのRGBの違いに注意

OpenCVで読み込んだ画像はBGR形式、PillowはRGB形式です。Matplotlibなどで表示する際に色がずれることがあります。
以下のコードでBGR→RGBに変換できます。

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("sample.jpg")

# BGRからRGBへ変換
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

plt.imshow(img_rgb)
plt.axis("off")
plt.show()

 

5. まとめ

今回は、Pythonで画像ファイルを読み込む方法について、PillowとOpenCVの両方を用いて解説しました。
それぞれの特徴を理解し、用途に応じて使い分けることで、画像処理の幅が広がります。
例えば「簡単な表示や保存ならPillow」、「画像解析や機械学習との連携ならOpenCV」などがおすすめです。

画像の読み込みは、顔認識、物体検出、サムネイル生成などの実務に直結する技術です。ぜひ基本をマスターして、実践に活かしてください!

タイトルとURLをコピーしました