OpenCV在图像上画正弦曲线(c++)

写在前面:欢迎来到「湫歌」的博客。我是秋秋,一名普通的在校大学生。在学习之余,用博客来记录我学习过程中的点点滴滴,也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获!希望大家多多关照,我们一起成长一起进步。也希望大家多多支持我鸭,喜欢我就给我一个关注吧!

1、环境配置

这部分可以看一下我之前的博客文章

Visual Studio 2022下载及配置OpenCV4.5.5

2、OpenCV读入图片

Mat src;
src = imread("C://Users//autumn//Desktop//forP49//1.png"); //图片地址

3、修改图片大小

Mat dst;
resize(src, dst, cv::Size(400, 400));

4、画正弦曲线

思路是:遍历单个像素点,计算对应的正弦函数值,在每一个函数点画出圆点,可以用circle函数

    double zhenfu;
	double zhouqi;
	cout << "请依次输入振幅和周期";
	cin >> zhenfu >> zhouqi;
	double i, j;
	for (i = dst.cols / 2;i <= dst.cols;i=i+0.1) {
		cv::circle(dst, Point(i, int(zhenfu * sin(zhouqi*i)+dst.rows/2)), 1, cv::Scalar(0, 255, 255), -100);
	}

	for (j = dst.cols / 2;j >= 0;j=j-0.1) {
		cv::circle(dst, Point(j, int(zhenfu * sin(zhouqi*j)+dst.rows/2)), 1, cv::Scalar(0, 255, 255), -100);
	}

5、显示图像

imshow("display", dst);
waitKey(0);

6、效果展示

OpenCV在图像上画正弦曲线(c++)_第1张图片

6、最后放上完整代码 

#include
#include
#include
#include
#include  
#include  
#include  
using namespace cv;
using namespace std;
int main() {
	Mat src;
	Mat dst;
	src = imread("C://Users//autumn//Desktop//forP49//1.png");
	//imshow("display", src);
	//waitKey(0);
	resize(src, dst, cv::Size(400, 400));

	double zhenfu;
	double zhouqi;
	cout << "请依次输入振幅和周期";
	cin >> zhenfu >> zhouqi;
	double i, j;
	for (i = dst.cols / 2;i <= dst.cols;i=i+0.1) {
		cv::circle(dst, Point(i, int(zhenfu * sin(zhouqi*i)+dst.rows/2)), 1, cv::Scalar(0, 255, 255), -100);
	}

	for (j = dst.cols / 2;j >= 0;j=j-0.1) {
		cv::circle(dst, Point(j, int(zhenfu * sin(zhouqi*j)+dst.rows/2)), 1, cv::Scalar(0, 255, 255), -100);
	}
	imshow("display", dst);
	waitKey(0);
	//cout << "图像宽为:" << src.cols << "高度为:" << src.rows << endl;
	return 0;
}

 写的有点粗糙

你可能感兴趣的:(OpenCV,c#,visual,studio,opencv)