スキルUPの道しるべ

本サイトはプロモーションを含みます
上に戻る

【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):

関連・おすすめ書籍

まとめ

今回は基本的なトリミング方法から、複数領域のトリミングまでを解説しました。

PythonOpenCVを使えば、簡単に画像をトリミングすることができます。

画像の一部を切り取ることで、必要な情報だけを抽出したり、画像を最適化したりすることが可能です。

これを機に、様々な画像処理に挑戦してみましょう。

▼必見(ChatGPTを活用!おすすめAI副業)▼

今なら5000円分の特典あり!! dodgsonblog.com