実践記
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
この記事は以上です。
リンク