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

C++とOpenCVで円を描画する方法|circle()関数の使い方を解説

円は「中心」と「半径」という2つの要素によって定義されます。OpenCVで円を描画するには、あらかじめ中心座標と半径を決めておく必要があります。また、circle()関数はimgproc.hppヘッダー内で定義されているため、このヘッダーを必ずインクルードしなければなりません。

circle()関数の基本構文

circle(whiteMatrix, center, radius, line_Color, thickness);

各引数の意味は以下の通りです。

  • whiteMatrix:描画対象となる画像(Mat行列)
  • center:円の中心座標(Point型)
  • radius:円の半径(ピクセル単位)
  • line_Color:線の色(Scalar型でBGR形式を指定)
  • 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);// 円の中心点を宣言
    int radius = 50; // 半径を宣言
    Scalar line_Color(0, 0, 0);// 円の色(黒)
    int thickness = 2;// 線の太さ
    namedWindow("whiteMatrix");// 円を表示するウィンドウを宣言
    circle(whiteMatrix, center, radius, line_Color, thickness);// circle()関数で円を描画
    imshow("WhiteMatrix", whiteMatrix);// 描画した円を表示
    waitKey(0);// キー入力を待機
    return 0;
}

実行結果

このプログラムをコンパイルして実行すると、200×200ピクセルの白色キャンバスが表示され、その中央(座標100, 100)に半径50ピクセルの黒い輪郭線の円が描画されます。ウィンドウは任意のキーを押すまで表示されたままになります。

C++とOpenCVで円を描画する方法|circle()関数の使い方を解説

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

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

  2. OpenCVのcircle()関数を使って画像に円を描画する方法

    はじめに本記事では、OpenCVが提供するcircle()関数を使用して、画像上に円を描画する方法を解説します。円の中心座標・半径・色・線の太さを自由に指定できるため、画像への注釈付けや図形のオーバーレイ表示など、さまざまな場面で活用できます。元画像処理の手順(アルゴリズム)ステップ1:OpenCVをインポートする ステップ2:円の半径を定義する ステップ3:円の中心座標を定義する ステップ4:円の色を定義する ステップ5:線の太さを定義する ステップ6:上記の引数を画像とともにcv2.circle()へ渡す ステップ7:出力結果を表示するcv2.circle()の主な引数image:描画対象