【问题标题】:Drawing a Wave represented by (Orientation, Frequency, Phase-shift, Amplitude) Using OpenCv使用 OpenCv 绘制由(方向、频率、相移、幅度)表示的波
【发布时间】:2016-01-21 14:02:06
【问题描述】:

我想创建一个空图像并从用户那里获取参数,即波方向、波频率、相移、波幅。

我必须给出类似于下图的输出:

我的问题:

  • 如何在空白图像中绘制波浪?
  • 我应该使用哪些功能?

【问题讨论】:

  • 什么是 x,y 轴?和像素值?使用这些参数的公式是什么?
  • 我正在尝试在 1024x1024 窗口中绘制,但我没有公式,但这就是我在这里写它的原因。如果能帮助我入门,将不胜感激。
  • 你从哪里得到这些图像的?你想转换一些 Matlab 代码之类的吗?不知道你想画什么,就不可能帮你画出来。如果没有进一步的细节,这个问题可能是题外话

标签: opencv c++11 visual-c++ opencv3.0


【解决方案1】:

我猜你可以执行以下步骤(但我不确定,因为我没有测试它):

  1. 使用具有所需波形频率、相移和波形幅度的正弦函数来计算一行像素的值。使用正弦和归一化可能看起来像这样:

    for( int j = 0; j < I.cols; ++j ) I.at<uchar>(i,j) = (Amplitude * sin(frequency*j + PhaseShift) + 1) / 2 * 255;

  2. 将第一行复制到其他行以接收垂直线等内容。

  3. 使用cv::getRotationMatrix2Dcv::warpAffine 获得所需的波浪方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 2016-06-11
    • 2021-02-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2017-12-23
    相关资源
    最近更新 更多