//35.重映射
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespacecv;
int main(){
Mat srcImage,dstImage;
Mat map_x,map_y;
srcImage=imread("/Users/oumoemoe/Downloads/building.png");
if(!srcImage.data){
printf("读取图像失败\n");
returnfalse;
}
imshow("first", srcImage);
dstImage.create(srcImage.size(), srcImage.type());
map_x.create(srcImage.size(),CV_32FC1);
map_y.create(srcImage.size(),CV_32FC1);
for(int j=0;j<srcImage.rows;j++){
for(int i=0;i<srcImage.cols;i++){
map_x.at<float>(j,i)=static_cast<float>(i);
map_y.at<float>(j,i)=static_cast<float>(srcImage.rows-j);//如果是按x轴进行变换,则对x进行如下操作
//map_x.at<float>(j,i)=static_cast<float>(srcImage.cols-i);
}
}
remap(srcImage, dstImage, map_x, map_y,INTER_LINEAR,BORDER_CONSTANT,Scalar(0,0,0));
imshow("final", dstImage);
waitKey(0);
return0;
}