opencv3学习之图像的翻转--重映射

来源:互联网 发布:ec软件使用 编辑:程序博客网 时间:2024/05/17 22:39

//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;

}


原创粉丝点击