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、效果展示

6、最后放上完整代码 

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
#include <stdlib.h> 
#include <stdio.h> 
#include <math.h> 
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;
}

 写的有点粗糙

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湫歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值