图像重映射
//opencv includes
#include"opencv2/core/utility.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/opencv.hpp>
#include<iostream>
//#include<random>
using namespace std;
using namespace cv;
void wave(const Mat &image, Mat &result)
{
// 映射参数
Mat srcX(image.rows, image.cols, CV_32F);
Mat srcY(image.rows, image.cols, 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);
}
}
//应用映射函数
remap(image, result, srcX, srcY, INTER_LINEAR);
}
int main()
{
//打开图像
Mat image = imread("C:\\Users\\Administrator\\Desktop\\xiaohai.jpg", 1);
if (image.empty())
{
cout << "Error!cannot be read....../n";
return -1;
}