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

写在前面:欢迎来到「湫歌」的博客。我是秋秋,一名普通的在校大学生。在学习之余,用博客来记录我学习过程中的点点滴滴,也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获!希望大家多多关照,我们一起成长一起进步。也希望大家多多支持我鸭,喜欢我就给我一个关注吧!
1、环境配置 这部分可以看一下我之前的博客文章
Visual Studio 2022下载及配置OpenCV4.5.5
2、OpenCV读入图片
Mat src; src = https://www.it610.com/article/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|OpenCV在图像上画正弦曲线(c++)
文章图片

6、最后放上完整代码
#include #include #include #include #include #include #include using namespace cv; using namespace std; int main() { Mat src; Mat dst; src = https://www.it610.com/article/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|OpenCV在图像上画正弦曲线(c++)】 写的有点粗糙

    推荐阅读