コラム

Pythonで画像処理入門:初心者でも簡単!画像の世界を広げよう

Pythonは、そのシンプルで読みやすい構文と豊富なライブラリのおかげで、画像処理分野でも非常に人気のあるプログラミング言語です。この記事では、Pythonを使った画像処理の基礎を、初心者の方にもわかりやすく解説します。

1. なぜPythonで画像処理?

Pythonで画像処理を行うメリットはたくさんあります。

2. 必須ライブラリ:PIL/Pillow

Pythonで画像処理を行う上で最も重要なライブラリの一つが、PIL (Python Imaging Library) です。しかし、PILはすでに開発が終了しており、現在はその後継である Pillow を使用するのが一般的です。

Pillowは、画像の読み込み、保存、形式変換、基本的な画像処理機能などを提供します。

インストール方法:

コマンドプロンプトまたはターミナルで以下のコマンドを実行して、Pillowをインストールします。

pip install Pillow

3. Pillowを使った基本的な画像処理

Pillowを使って、実際に画像を操作してみましょう。

3.1 画像の読み込みと表示

from PIL import Image

# 画像ファイルを読み込む
image = Image.open("sample.jpg")

# 画像の表示
image.show()

このコードは、sample.jpgという画像ファイルを読み込み、新しいウィンドウで表示します。Image.open()関数は、画像ファイルを読み込んでImageオブジェクトを作成します。image.show()関数は、画像を一時的なファイルに保存し、それをシステムのデフォルトの画像ビューアで開きます。

3.2 画像サイズの取得

from PIL import Image

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

# 画像の幅と高さを取得
width, height = image.size

print(f"画像の幅: {width}px")
print(f"画像の高さ: {height}px")

このコードは、画像の幅と高さを取得し、コンソールに出力します。image.size属性は、画像の幅と高さをタプルとして返します。

3.3 画像の回転

from PIL import Image

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

# 画像を90度回転
rotated_image = image.rotate(90)

# 回転後の画像を表示
rotated_image.show()

# 回転後の画像を保存
rotated_image.save("rotated_sample.jpg")

このコードは、画像を90度回転させ、その結果を表示し、新しいファイルとして保存します。image.rotate()関数は、画像を反時計回りに指定された角度だけ回転させます。rotated_image.save()関数は、画像を新しいファイルとして保存します。

3.4 画像のリサイズ

from PIL import Image

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

# 画像をリサイズ
resized_image = image.resize((200, 150)) # 幅200px, 高さ150px

# リサイズ後の画像を表示
resized_image.show()

# リサイズ後の画像を保存
resized_image.save("resized_sample.jpg")

このコードは、画像のサイズを変更し、その結果を表示し、新しいファイルとして保存します。image.resize()関数は、画像を指定された幅と高さにリサイズします。

3.5 画像の切り抜き

from PIL import Image

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

# 切り抜き範囲を指定 (左上のx, 左上のy, 右下のx, 右下のy)
crop_area = (100, 100, 300, 200)

# 画像を切り抜き
cropped_image = image.crop(crop_area)

# 切り抜き後の画像を表示
cropped_image.show()

# 切り抜き後の画像を保存
cropped_image.save("cropped_sample.jpg")

このコードは、画像の一部を切り抜き、その結果を表示し、新しいファイルとして保存します。image.crop()関数は、指定された範囲の画像を切り抜きます。切り抜き範囲は、左上のx座標、左上のy座標、右下のx座標、右下のy座標の4つの値を持つタプルで指定します。

4. その他のライブラリ

Pillow以外にも、Pythonには様々な画像処理ライブラリがあります。

5. まとめ

PythonとPillowを使えば、画像の読み込み、表示、回転、リサイズ、切り抜きといった基本的な画像処理を簡単に行うことができます。さらに、OpenCVやscikit-imageといったライブラリを使えば、より高度な画像処理も可能です。

画像処理の世界は奥深く、様々な応用が可能です。ぜひPythonを使って、画像処理の可能性を探求してみてください。まずは簡単な処理から始め、徐々にステップアップしていくのがおすすめです。



< 自作ライブラリ
機械学習 >



コラム一覧

if文
for文
関数
配列
文字列
正規表現
ファイル入出力
openpyxl
Numpy
Matplotlib
Pandas
scikit-learn
seaborn
beautifulsoup
tkinter
OpenCV
pygame
メイン関数
自作ライブラリ
画像処理
機械学習
スクレイピング
データ分析
グラフ作成
API
可読性
デバッグ
例外処理
コメント
組み込み関数
flask
学び方
ビット演算
マルチスレッドプログラミング
参照渡し
pyenv
エディタ
生成AI
画像認識
Streamlit
lambda式
物理演算シミュレーション
命名規則
遺伝的アルゴリズム
関数型プログラミング
オブジェクト指向
ツリー図