OpenCVでsinカーブを描く

プログラミング
スポンサーリンク
スポンサーリンク

実践記

OpenCV学習中の者です。やったことを書いた記事です。

OpenCVでsinカーブを描いてみました。白の背景に黒のカーブを描きました。

点を打つ関数はわからなかったのでcircle関数を使っています。

circle関数は名前の通り円を描く関数なのですが、円の半径を0.5とした小さい円を点とみなしてカーブを描画しています。

#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main() {
	Mat img;

	img = Mat::zeros(500, 500, CV_8UC3); //500×500画素の黒色のMat

	// imgの全ピクセルを白にする
	for (int j = 0; j < img.rows; j++) {
		for (int i = 0; i < img.cols; i++) {
			img.at< Vec3b>(j, i)[0] = 255; //青
			img.at< Vec3b>(j, i)[1] = 255; //緑
			img.at< Vec3b>(j, i)[2] = 255; //赤
		}
	}

	float amp = 100;		// 波の高さ
	float per = 0.03;		// 周期の係数

	for (float i = 0; i < img.cols; i += 0.01) {
		circle(img, Point(i, 250 + amp * sin(per * i)), 0.5, Scalar(0, 0, 0), 1);
	}

	imshow("sin", img);

	waitKey(0);

	return 0;
}

波の高さ : 20
周期の係数: 0.1

波の高さ : 100
周期の係数: 0.03

この記事は以上です。