图像类似正弦线,从百度上找了好久类似的DEMO,没找到,自己用了一个笨方法实现了。

#include <opencv2/opencv.hpp>
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <opencv2/imgproc/types_c.h>
#include "opencv2/core/core.hpp"
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
using namespace cv;
using namespace std;

int main()
{

Mat image = imread("test.png");
    if (image.empty())
    {
        cout << "open img failed\n" << endl;
        return -1;
    }

//输入拟合点  
    std::vector<cv::Point> points;
    std::vector<cv::Point> points1;
    std::vector<cv::Point> points2;
    std::vector<cv::Point> points3;
    std::vector<cv::Point> points4;
    std::vector<cv::Point> points5;
    std::vector<cv::Point> points6;
    std::vector<cv::Point> points7;

for (double x = 0; x < 630; x += 10)
     {
        double y = 5 * cos(x)+100;
        points.push_back(cv::Point(x, abs(y)));
     }
    //绘制折线
    cv::polylines(image, points, false, cv::Scalar(255, 255, 0), 1, 8, 0);
    for (double x = 0; x < 630; x += 10)
     {
        double y = 5 * cos(x)+120;
        points1.push_back(cv::Point(x, abs(y)));
     }
    //绘制折线
    cv::polylines(image, points1, false, cv::Scalar(255, 255, 0), 1, 8, 0);
    for (double x = 0; x < 630; x += 10)
    {
        double y = 5 * cos(x) + 140;
        points2.push_back(cv::Point(x, abs(y)));
    }
    //绘制折线
    cv::polylines(image, points2, false, cv::Scalar(255, 255, 0), 1, 8, 0);
    for (double x = 0; x < 630; x += 10)
    {
        double y = 5 * cos(x) + 160;
        points3.push_back(cv::Point(x, abs(y)));
    }
    //绘制折线
    cv::polylines(image, points3, false, cv::Scalar(255, 255, 0), 1, 8, 0);
    for (double x = 0; x < 630; x += 10)
    {
        double y = 5 * cos(x) + 180;
        points4.push_back(cv::Point(x, abs(y)));
    }
    //绘制折线
    cv::polylines(image, points4, false, cv::Scalar(255, 255, 0), 1, 8, 0);
    for (double x = 0; x < 630; x += 10)
    {
        double y = 5 * cos(x) + 200;
        points5.push_back(cv::Point(x, abs(y)));
    }
    //绘制折线
    cv::polylines(image, points5, false, cv::Scalar(255, 255, 0), 1, 8, 0);
    for (double x = 0; x < 630; x += 10)
    {
        double y = 5 * cos(x) + 220;
        points6.push_back(cv::Point(x, abs(y)));
    }
    //绘制折线
    cv::polylines(image, points6, false, cv::Scalar(255, 255, 0), 1, 8, 0);

imshow("image", image);
    imwrite("hello.jpg", image);
    waitKey(0);
    return 0;
}

效果图如下,可以更改频率和周期。

OPENCV画波浪线相关推荐

  1. 如何用viso画波浪线、以及带箭头的波浪线。

    如何用viso画波浪线.带箭头的波浪线!!! 搜索过来搜索过去,还是没有找到一个令自己满意的答案,就自己写一个过程了. 首先我使用的是visio 2013版本. 方法一: 打开visio,新建一个基本 ...

  2. 如何在PPT中画波浪线?

    如何在PPT中画波浪线? 如何在PPT中画出如下的正弦波呢?插入图片形式当然是可以,但是非矢量图放大后不可避免的失真,强迫症表示无法忍受. 插入矩形形状.然后不断复制,排列整齐.填充透明,边框最细. ...

  3. Adobe Illustrator(AI)中画波浪线选择端点以及编辑的问题

    使用环境(蓝色粗体字为特别注意内容) 1.软件环境:Win7 32 bit,Adobe Illustrator. 我们知道在AI中画波浪线的时候可以使用钢笔工具,但是钢笔工具画出来的波浪线很难做到绝对 ...

  4. 自定义View、画波浪线

    三角函数公式:y = A sin(ωx + φ) + k A代表振幅,就是最大值减去最小值的一半. ω代表(角速度)收缩或伸长,这个只要记住:周期T=2*pi/w就可以了 φ代表在X上的平移,左移为正 ...

  5. python画波浪线_PPT绘制波浪线的四种方法

    在开始学习教程前,先欣赏两幅画.画面中的波浪线使用的恰到好处,给整个画面增添张力与活力.那么用PPT能绘制出柔美的波浪线吗?答案当然是肯定的!一共四种方法,本文图文详解使用PPT绘制波浪线的四种方法. ...

  6. python怎么画波浪线_国画知识:水很难画?四种常见画法图解教你,保证你一学就会画...

    俗话说:"水无常形",可见水是非常难画的,但是水真的很难画吗?只是你的画法不对而已,只要掌握好水的正确画法,画水其实很简单. 第一种:波浪法 波浪法顾名思义起笔画时就像波浪一样,用 ...

  7. Java使用Graphics2D画波浪线的艰辛之路

    需求是根据飞机的线路情况,需要画直线,双直线,波浪线,虚线,连连接航路 其他都好说,这波浪线尤其不好画 搜了一圈,基本都是建议使用drawArc方法画圆弧拼接波浪线,但是及其麻烦,效果如下,并不理想 ...

  8. python画波浪线_matplotlib中的锯齿形或波浪线

    是的,但它有一点点后果.最简单的方法是在matplotlib中使用xkcd模式. import numpy as np import matplotlib.pyplot as plt plt.xkcd ...

  9. 用python画波浪线的句子_matplotlib中的锯齿线或波浪线

    是的,但是会有一点影响.最简单的方法是在matplotlib中使用xkcd模式.在import numpy as np import matplotlib.pyplot as plt plt.xkcd ...

最新文章

  1. WPF及Silverlight中将DataGrid数据导出
  2. kubernetes创建资源的两种方式
  3. python计算tfidf sklearn计算
  4. 牛客题霸 NC13 二叉树的最大深度
  5. 【位运算】代码中的常用操作
  6. python如何操作oracle数据库_Python 操作 Oracle 数据库
  7. linux中yum与rpm区别
  8. Apache专用笔记贴
  9. mysql普通索引自增_mysql中联合索引中的自增列的增长策略
  10. android 子module混淆_Android 多模块打包混淆填坑记
  11. 在Eclipse中调试Maven项目
  12. 检查已终止。收集事实数据时检测到错误
  13. SpringMvc-MockMvc
  14. 微型计算机的工作过程是执行程序过程吗,微型计算机的工作过程和主要性能指标...
  15. 矢量图形设计工具Artboard快捷键汇总
  16. 【手势识别】基于matlab肤色静态手势识别【含Matlab源码 288期】
  17. DOSbox安装使用教程和汇编工具
  18. Ps的变换、蒙版与色彩平衡
  19. 外文文献查找技巧方法有哪些
  20. 计算机英语口语900句,日常英语口语900句

热门文章

  1. LINUX嵌入式开发书籍推荐(附WINCE部分)
  2. 家用计算机可直接登录window,win10自动登陆,win10家庭版怎么自动登录
  3. realsense深度图测试程序
  4. 能打开人心结的21句话
  5. python turtle 画老鼠_Python Turtle绘图 鼠年画老鼠爷
  6. 七彩虹的主板bios看国产硬件厂商的水平
  7. Airtest的UI自动化番外篇、安卓手机密码键盘在AirTest上黑屏
  8. java pinyin4j 官网_Pinyin4j---JAVA拼音解决方案
  9. AirPods Pro的使用场景
  10. 一看就懂的CE-NET详解