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

C++とOpenCVを使って長方形を描画する方法

OpenCVで長方形を描くには、4つの点(座標)が必要です。以下の図をご覧ください。

C++とOpenCVを使って長方形を描画する方法

この図には、x1、x2、y1、y2の4つの点があり、これらが長方形を構成する4つの座標を定義しています。OpenCVで長方形を描画するには、まずこれらの点を定義し、長方形を表示するためのマトリックス(行列)を用意する必要があります。さらに、線の色や線の太さといった関連する値も宣言しておきましょう。

基本構文

rectangle関数の基本的な構文は以下の通りです。

rectangle(whiteMatrix, starting, ending, line_Color, 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 starting(40, 40);// 開始座標を宣言//
    Point ending(160, 100);// 終了座標を宣言//
    Scalar line_Color(0, 0, 0);// 長方形の色//
    int thickness = 2;// 線の太さ//
    namedWindow("whiteMatrix");// 長方形を表示するウィンドウを宣言//
    rectangle(whiteMatrix, starting, ending, line_Color, thickness);// 長方形を描画//
    imshow("WhiteMatrix", whiteMatrix);// 長方形を表示//
    waitKey(0);// キー入力を待機//
    return 0;
}

コードの解説

  • whiteMatrix:200×200ピクセルの白背景画像を作成します。CV_8UC3は8ビットの3チャンネル画像を意味します。
  • starting:長方形の左上の頂点となる開始座標(40, 40)を指定します。
  • ending:長方形の右下の頂点となる終了座標(160, 100)を指定します。
  • line_Color:Scalar(0, 0, 0)により黒色の線を指定します。
  • thickness:線の太さを2ピクセルに設定します。

実行結果

このプログラムを実行すると、白い背景の上に黒い長方形が描画された画像がウィンドウに表示されます。

C++とOpenCVを使って長方形を描画する方法

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

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

  2. OpenCVを使って画像に長方形を描画する方法

    このプログラムでは、OpenCVの rectangle() 関数を使用して、画像の上に長方形を描画します。この関数には、開始座標、終了座標、色、線の太さ、そして描画対象となる画像そのものといったパラメータを渡します。 元画像 アルゴリズム ステップ1: cv2をインポートする。 ステップ2: imread() を使って画像を読み込む。 ステップ3: 開始座標を定義する。 ステップ4: 終了座標を定義する。 ステップ5: 色と線の太さを定義する。 ステップ6: cv2.rectangle() 関数を使って長方形を描画する。 ステップ7: 長方形を画面に表示する。 サンプルコード import