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




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

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

1. なぜPythonで画像処理?

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

  • 豊富なライブラリ: 画像処理に必要な機能を提供するライブラリが充実しています。
  • シンプルな構文: プログラミング初心者でも理解しやすい構文で、コードを書くことができます。
  • 活発なコミュニティ: 困ったことがあれば、オンラインで情報を得やすく、解決策を見つけやすいです。
  • クロスプラットフォーム: Windows、macOS、Linuxなど、さまざまなOSで動作します。

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には様々な画像処理ライブラリがあります。

  • OpenCV: より高度な画像処理やコンピュータビジョンのためのライブラリ。顔認識、物体検出などに使われます。
  • scikit-image: 科学的な画像解析のためのライブラリ。画像セグメンテーション、特徴抽出などに使われます。

5. まとめ

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

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



< 自作ライブラリ
コラム一覧に戻る
機械学習 >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!