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

C++とOpenCVを使って楕円を描画する方法を解説

OpenCVで楕円を描画するには、「中心点」「長軸」「短軸」の3つのパラメータが必要です。さらに、楕円を描き込むためのマトリックス(キャンバス)を用意し、線の太さと線の色も指定する必要があります。

OpenCVで楕円を描く際には回転角度も指定しなければならず、そのほかに「開始点」と「終了点」という2つの追加パラメータも必要になります。ellipse()関数を使用するには、<imgproc.hpp>ヘッダーファイルをインクルードしておきましょう。

構文

ellipse()メソッドの基本的な構文は以下の通りです。

ellipse(whiteMatrix, center, xy, angle, starting_point, ending_point, line_Color, thickness);

各パラメータの意味

  • whiteMatrix: 描画先となるマトリックス(画像)
  • center: 楕円の中心座標(Point型)
  • xy: 楕円の長軸と短軸のサイズ(Size型)
  • angle: 楕円の回転角度
  • starting_point: 楕円の開始角度
  • ending_point: 楕円の終了角度
  • line_Color: 線の色(Scalar型)
  • thickness: 線の太さ

それでは、実際にOpenCVで楕円を描画するプログラムを見てみましょう。

サンプルコード

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main() {
    Mat whiteMatrix(200, 200, CV_8UC3, Scalar(255, 255, 255));//白いマトリックス(キャンバス)を宣言
    Point center(100, 100);//楕円の中心点を宣言
    Size xy(100, 50);//楕円の長軸と短軸を宣言//
    int angle = 50;//回転角度//
    int starting_point = 0;//楕円の開始点//
    int ending_point = 360;//楕円の終了点//
    Scalar line_Color(0, 0, 0);//楕円の線の色//
    int thickness = 2;//線の太さ//
    namedWindow("whiteMatrix");//楕円を表示するためのウィンドウを宣言//
    ellipse(whiteMatrix, center, xy, angle, starting_point, ending_point, line_Color, thickness);//楕円を描画
    imshow("WhiteMatrix", whiteMatrix);//楕円を表示
    waitKey(0);//キー入力を待機
    return 0;
}

実行結果

このプログラムを実行すると、200×200ピクセルの白色背景上に、黒い輪郭の楕円が50度回転した状態で描画されます。

C++とOpenCVを使って楕円を描画する方法を解説

開始点と終了点の値を変更すれば完全な楕円ではなく部分的な弧を描くこともでき、angleの値を変えれば楕円の傾きを自由に調整できます。さまざまなパラメータを試して、OpenCVでの図形描画に慣れていきましょう。

  1. JavaとOpenCVで線を描画する方法をわかりやすく解説

    Java版OpenCVライブラリのorg.opencv.imgprocパッケージには、Imgprocというクラスが含まれています。画像に直線を描画するには、このクラスが提供するline()メソッドを呼び出します。 line()メソッドのパラメータ line()メソッドは、以下のパラメータを受け取ります。 Matオブジェクト ― 直線を描画する対象となる画像を表します。 Pointオブジェクト2つ ― 直線の始点と終点の座標を表します。 Scalarオブジェクト ― 直線の色をBGR形式で指定します。 整数値 ― 直線の太さを指定します(デフォルト値:1)。 サンプルコード 以下は、白紙の画

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

    この記事では、Pythonの画像処理ライブラリ「OpenCV」を使って、画像の上に楕円を描画する方法を解説します。楕円の描画には、OpenCVが提供する cv2.ellipse() 関数を使用します。元画像アルゴリズム(処理の手順)楕円を描画するまでの流れは、以下の手順になります。ステップ1: cv2 をインポートする。 ステップ2: imread() で画像を読み込む。 ステップ3: 楕円の中心座標を設定する。 ステップ4: 楕円の長軸・短軸の長さ(axesLength)を設定する。 ステップ5: 楕円の回転角度(angle)を設定する。 ステップ6: 描画を開始する角度と終了する角度を設定