【Python&OpenCV】画像をトリミングする方法を初心者向け&例付きでわかりやすく解説!
Pythonで画像処理を行う際に便利なライブラリの一つがOpenCVです。 今回は、OpenCVを使って画像をトリミングする方法について見ていきましょう。
OpenCVとは
OpenCVは、コンピュータビジョンや画像処理に特化したオープンソースのライブラリです。
Pythonだけでなく、C++やJavaなどでも利用でき、画像の読み込みや加工、解析など幅広い機能を提供しています。
今回は、特に画像をトリミングする機能に焦点を当てて説明します。
✓『OpenCVによる画像処理入門』で基礎の確認から応用した使い方まで学ぶことができます。本記事とあわせて、ぜひ、チェックしてください。
OpenCVのインストール方法
まず、OpenCVを使用するためにPython環境にインストールします。
以下のコマンドをターミナル(またはコマンドプロンプト)で実行してください。
pip install opencv-python
これでOpenCVをインストールする準備が整いました。次に、具体的なトリミングの方法を見ていきましょう。
画像の読み込みと表示
sample.png:
まずは、トリミングを行う前に画像を読み込み、表示する方法を解説します。サンプルとして、以下のコードを使用します。
コード:
import cv2 # 画像の読み込み image = cv2.imread('sample.png') # 画像の表示 cv2.imshow('Original Image', image) cv2.waitKey(0) cv2.destroyAllWindows()
上記のコードは、sample.pngという画像ファイルを読み込み、それをウィンドウに表示するものです。
cv2.imread()
で画像を読み込み、cv2.imshow()
でウィンドウに表示します。
cv2.waitKey(0)
は、キー入力があるまでウィンドウを表示し続けるための命令です。
実行例(sample.png):
画像のトリミング方法
次に、画像の一部をトリミングする方法を解説します。
具体的には、画像の座標を指定してその範囲を切り取ります。以下のコードを見てください。
コード:
import cv2 # 画像の読み込み image = cv2.imread('sample.png') # トリミング範囲の指定 (y1:y2, x1:x2) cropped_image = image[50:200, 100:300] # トリミングした画像の表示 cv2.imshow('Cropped Image', cropped_image) cv2.waitKey(0) cv2.destroyAllWindows()
このコードでは、画像の一部をトリミングして表示しています。
image[50:200, 100:300]
という指定で、画像の上から50ピクセル目から200ピクセル目までの範囲、左から100ピクセル目から300ピクセル目までの範囲を切り取っています。
この範囲は、行(y座標)と列(x座標)で指定します。
実行例(sample.png):
トリミングした画像を保存する方法
トリミングした画像を保存する方法についても見ていきましょう。
保存にはcv2.imwrite()
を使用します。
コード:
import cv2 # 画像の読み込み image = cv2.imread('sample.png') # トリミング範囲の指定 (y1:y2, x1:x2) cropped_image = image[50:200, 100:300] # トリミングした画像を保存 cv2.imwrite('cropped_sample.png', cropped_image) # 保存した画像の表示 cv2.imshow('Cropped Image', cropped_image) cv2.waitKey(0) cv2.destroyAllWindows()
このコードでは、cv2.imwrite('cropped_sample.png', cropped_image)
を使ってトリミングした画像をcropped_sample.png
という名前で保存しています。
トリミングした画像が確認できるように、保存後も表示されます。
複数の領域をトリミングする方法
次に、複数の領域をトリミングする場合の方法を解説します。
画像内の異なる領域を複数回トリミングしたい場合もあります。
コード:
import cv2 # 画像の読み込み image = cv2.imread('sample.png') # 複数のトリミング範囲を指定して切り取り cropped_image1 = image[50:150, 100:200] cropped_image2 = image[200:350, 300:500] # トリミングした画像の表示 cv2.imshow('Cropped Image 1', cropped_image1) cv2.imshow('Cropped Image 2', cropped_image2) cv2.waitKey(0) cv2.destroyAllWindows()
このコードでは、2つの異なる範囲をトリミングして、それぞれを別のウィンドウに表示しています。
cv2.imshow()
を使って、複数の画像を同時に表示することができます。
実行例(sample.png):
関連・おすすめ書籍
まとめ
今回は基本的なトリミング方法から、複数領域のトリミングまでを解説しました。
PythonとOpenCVを使えば、簡単に画像をトリミングすることができます。
画像の一部を切り取ることで、必要な情報だけを抽出したり、画像を最適化したりすることが可能です。
これを機に、様々な画像処理に挑戦してみましょう。
▼必見(ChatGPTを活用!おすすめAI副業)▼
今なら5000円分の特典あり!! dodgsonblog.com