图像重映射remap函数

2020-04-29  本文已影响0人  coolTigers

借助opencv中的remap函数可以实现图像特效。

void Wave(const cv::Mat image, cv::Mat& result)
{
    Mat srcX(image.size(), CV_32F);
    Mat srcY(image.size(), CV_32F);

    // 创建映射参数
    for (int i = 0; i < image.rows; i++) {
        for (int j = 0; j < image.cols; j++){
            srcX.at<float>(i, j) = j; // 列不变
            srcY.at<float>(i, j) = i + 5 * sin(j / 10.0); // 行按照正弦曲线移动
        }
    }

    cv::remap(image, result, srcX, srcY, cv::INTER_LINEAR);
}

效果图如下:


image.png
上一篇 下一篇

猜你喜欢

热点阅读