Python
 Computer >> コンピューター >  >> プログラミング >> Python

OpenCVで画像に楕円を描画する方法|cv2.ellipse()の使い方を解説

この記事では、Pythonの画像処理ライブラリ「OpenCV」を使って、画像の上に楕円を描画する方法を解説します。楕円の描画には、OpenCVが提供する cv2.ellipse() 関数を使用します。

元画像

OpenCVで画像に楕円を描画する方法|cv2.ellipse()の使い方を解説

アルゴリズム(処理の手順)

楕円を描画するまでの流れは、以下の手順になります。

ステップ1: cv2 をインポートする。
ステップ2: imread() で画像を読み込む。
ステップ3: 楕円の中心座標を設定する。
ステップ4: 楕円の長軸・短軸の長さ(axesLength)を設定する。
ステップ5: 楕円の回転角度(angle)を設定する。
ステップ6: 描画を開始する角度と終了する角度を設定する。
ステップ7: 線の色(BGR形式)を設定する。
ステップ8: 線の太さ(thickness)を設定する。
ステップ9: 上記のパラメータを指定して cv2.ellipse() を呼び出し、元画像に楕円を描画する。
ステップ10: 最終結果を画面に表示する。

サンプルコード

実際に動作するPythonコードは以下の通りです。各パラメータの意味はコメントとして記載しています。

import cv2

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

# 楕円の中心座標 (x, y)
center_coordinates = (120, 100)

# 長軸と短軸の長さ (長軸, 短軸)
axesLength = (100, 50)

# 楕円の回転角度(度数法)
angle = 0

# 描画開始角度と終了角度
startAngle = 0
endAngle = 360

# 線の色(BGR形式:ここでは赤)
color = (0, 0, 255)

# 線の太さ
thickness = 5

# 楕円を描画
image = cv2.ellipse(image, center_coordinates, axesLength, angle, startAngle, endAngle, color, thickness)

# 結果を表示
cv2.imshow('Ellipse', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

主なパラメータの解説

  • center_coordinates: 楕円の中心となる座標をタプル (x, y) で指定します。
  • axesLength: 長軸と短軸の半分の長さをタプルで指定します。
  • angle: 楕円全体を回転させる角度です。0 の場合は回転なしになります。
  • startAngle / endAngle: 0〜360 を指定すると完全な楕円になり、範囲を狭めると楕円弧(部分的な楕円)が描けます。
  • color: BGR形式で指定します。(0, 0, 255) は赤色を意味します。
  • thickness: 輪郭線の太さです。-1 を指定すると塗りつぶしになります。

実行結果

上記のコードを実行すると、元画像の上に赤い楕円が描画されます。

OpenCVで画像に楕円を描画する方法|cv2.ellipse()の使い方を解説

startAngle や endAngle、angle の値を変更することで、傾いた楕円や部分的な円弧など、さまざまな形状を自由に描画できます。ぜひいろいろな値を試してみてください。

  1. PythonとOpenCVを使って画像内の円を検出する方法

    OpenCVはPython向けにcv2ライブラリを提供しており、コンピュータビジョンにおけるさまざまな形状解析に活用できます。本記事では、OpenCVを使って画像の中から「円」を検出する方法を解説します。円の検出にはcv2.HoughCircles()関数を使用します。この関数は、ハフ変換(Hough Transform)を用いてグレースケール画像から円を検出するものです。以下の例では、入力画像を読み込んだ後、そのコピーを作成し、ハフ変換を適用することで画像内の円を検出して出力します。構文cv2.HoughCircles(image, method, dp, minDist)各引数の意味は次の

  2. PythonとOpenCVで画像の輪郭を検出・描画する方法

    画像解析を行う際には、Python向けのオープンソースライブラリ「OpenCV(Open Source Computer Vision Library)」が広く利用されています。OpenCVをインストールした後、プログラム内では「cv2」という名前でインポートして使用します。 本記事では、画像ファイルに含まれる輪郭(コンタ)を検出し、描画する方法を解説します。輪郭とは、画像内の物体の形状を把握するために重要な情報で、「同じ明るさ(輝度)を持つ領域の境界上にある点を結んだ線」として定義されます。OpenCVでは、輪郭の検出にfindContours関数、輪郭の描画にdrawContours関数を