使用OpenCv绘制由(方向,频率,相移,幅度)表示的波形

时间:2015-10-22 10:10:39

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

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

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

enter image description here

我的问题:

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

1 个答案:

答案 0 :(得分:0)

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

  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获取所需的波浪方向。