2024年8月23日金曜日

Pythonで画像を表示・変形させるコード

Pythonで画像を表示し、回転や拡大縮小を行うには、主に以下のライブラリが利用されます。

  • OpenCV: 画像処理に特化した強力なライブラリです。リアルタイムな画像処理やコンピュータビジョンに適しています。
  • Pillow (PIL Fork): 画像処理の基本的な操作に特化したライブラリです。シンプルな画像処理に適しています。
  • Matplotlib: グラフ描画ライブラリですが、画像の表示にも利用できます。科学技術系のデータ可視化に適しています。

OpenCVを使った例

Python
import cv2
import numpy as np

# 画像を読み込む
img = cv2.imread('image.jpg')

# 画像を表示する
cv2.imshow('Original Image', img)
cv2.waitKey(0)

# 画像を回転する (時計回りに45度回転)
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2,rows/2), 45, 1)
rotated_img = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow('Rotated Image', rotated_img)
c   v2.waitKey(0)

# 画像を拡大縮小する (1.5倍に拡大)
resized_img = cv2.resize(img, None, fx=1.5, fy=1.5)
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)

cv2.destroyAllWindows()

Pillowを使った例

Python
from PIL import Image

# 画像を読み込む
img = Image.open('image.jpg')

# 画像を表示する
img.show()

# 画像を回転する (時計回りに90度回転)
rotated_img = img.rotate(90)
rotated_img.show()

# 画像を拡大縮小する (0.5倍に縮小)
resized_img = img.resize((int(img.width * 0.5), int(img.height * 0.5)))
resized_img.show()

Matplotlibを使った例

Python
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

# 画像を読み込む
img = mpimg.imread('image.jpg')

# 画像を表示する
plt.imshow(img)
plt.axis('off')  # 軸を表示しない
plt.show()

# 画像を回転する (反時計回りに30度回転)
rotated_img = plt.imread('image.jpg')
plt.imshow(rotated_img, interpolation='bicubic')
plt.gca().set_rotation(30)
plt.show()

# 画像を拡大縮小する (2倍に拡大)
resized_img = plt.imread('image.jpg')
plt.imshow(resized_img, interpolation='nearest')
plt.axis('image')  # 画像のアスペクト比を維持
plt.show()

各ライブラリの特長と使い分け

  • OpenCV: 高速な画像処理、リアルタイム処理、コンピュータビジョンに強い。
  • Pillow: シンプルな画像処理、Webアプリケーションでの画像処理に適している。
  • Matplotlib: グラフ描画、科学技術系のデータ可視化に強く、画像表示も可能。

どのライブラリを選ぶかは、やりたい処理の複雑さや、他のライブラリとの連携など、様々な要因によって変わってきます。

その他

  • 回転角: OpenCVでは正の値で時計回り、Pillowでは正の値で反時計回りの回転になります。
  • 拡大縮小: cv2.resizeではfxfyでそれぞれx方向とy方向の拡大率を指定します。Pillowでは新しいサイズをタプルで指定します。
  • 補間方法: cv2.resizeplt.imshowでは、interpolation引数で補間方法を指定できます。
  • 座標系: OpenCVとPillowでは座標系の原点が異なる場合があります。

補足: 上記のコードは基本的な例です。より高度な画像処理を行う場合は、それぞれのライブラリのドキュメントを参照してください。

ご自身の環境に合わせて、ライブラリをインストールし、コードを実行してみてください。

Bash
# OpenCVのインストール (pipを使う場合)
pip install opencv-python

# Pillowのインストール
pip install Pillow

# Matplotlibのインストール
pip install matplotlib

何か質問があれば、お気軽にご質問ください。

0 件のコメント:

コメントを投稿