您的位置:首页 > 其它

remap(result, // source image image, // destination image srcX, // x map

2016-07-08 08:50 288 查看
#include <stdio.h>

#include "opencv2/core/core.hpp"

#include "opencv2/features2d/features2d.hpp"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/nonfree/nonfree.hpp"

#include "opencv2/gpu/gpu.hpp"

#include <math.h>

#ifndef _DEBUG

#pragma  comment(lib,"IlmImf.lib")  

#pragma  comment(lib,"libjasper.lib")   

#pragma  comment(lib,"libjpeg.lib")  

#pragma  comment(lib,"libpng.lib")      

#pragma  comment(lib,"libtiff.lib") 

#pragma  comment(lib,"zlib.lib")  

#pragma  comment(lib,"opencv_calib3d2411.lib")

#pragma  comment(lib,"opencv_contrib2411.lib")

#pragma  comment(lib,"opencv_core2411.lib")

#pragma  comment(lib,"opencv_features2d2411.lib")

#pragma  comment(lib,"opencv_flann2411.lib")

#pragma  comment(lib,"opencv_gpu2411.lib")

#pragma  comment(lib,"opencv_highgui2411.lib")

#pragma  comment(lib,"opencv_imgproc2411.lib")

#pragma  comment(lib,"opencv_legacy2411.lib")

#pragma  comment(lib,"opencv_ml2411.lib")

#pragma  comment(lib,"opencv_nonfree2411.lib")

#pragma  comment(lib,"opencv_objdetect2411.lib")

#pragma  comment(lib,"opencv_ocl2411.lib")

#pragma  comment(lib,"opencv_photo2411.lib")

#pragma  comment(lib,"opencv_stitching2411.lib")

#pragma  comment(lib,"opencv_superres2411.lib")

#pragma  comment(lib,"opencv_ts2411.lib")

#pragma  comment(lib,"opencv_video2411.lib")

#pragma  comment(lib,"opencv_videostab2411.lib")

#else

#pragma  comment(lib,"zlibd.lib")

#pragma  comment(lib,"IlmImfd.lib")

#pragma  comment(lib,"libjasperd.lib")

#pragma  comment(lib,"libjpegd.lib")

#pragma  comment(lib,"libpngd.lib")

#pragma  comment(lib,"libtiffd.lib")

#pragma  comment(lib,"opencv_calib3d2411d.lib")

#pragma  comment(lib,"opencv_contrib2411d.lib")

#pragma  comment(lib,"opencv_core2411d.lib")

#pragma  comment(lib,"opencv_features2d2411d.lib")

#pragma  comment(lib,"opencv_flann2411d.lib")

#pragma  comment(lib,"opencv_gpu2411d.lib")

#pragma  comment(lib,"opencv_highgui2411d.lib")

#pragma  comment(lib,"opencv_imgproc2411d.lib")

#pragma  comment(lib,"opencv_legacy2411d.lib")

#pragma  comment(lib,"opencv_ml2411d.lib")

#pragma  comment(lib,"opencv_nonfree2411d.lib")

#pragma  comment(lib,"opencv_objdetect2411d.lib")

#pragma  comment(lib,"opencv_ocl2411d.lib")

#pragma  comment(lib,"opencv_photo2411d.lib")

#pragma  comment(lib,"opencv_stitching2411d.lib")

#pragma  comment(lib,"opencv_superres2411d.lib")

#pragma  comment(lib,"opencv_ts2411d.lib")

#pragma  comment(lib,"opencv_video2411d.lib")

#pragma  comment(lib,"opencv_videostab2411d.lib")

#endif

using namespace cv;

// remapping an image by creating wave effects

void wave(const cv::Mat &image, cv::Mat &result) {

 // the map functions

 cv::Mat srcX(image.rows,image.cols,CV_32F); // x-map

 cv::Mat srcY(image.rows,image.cols,CV_32F); // y-map

 // creating the mapping

 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+3*sin(j/6.0);

   // horizontal flipping

   // srcX.at<float>(i,j)= image.cols-j-1;

   // srcY.at<float>(i,j)= i;

  }

 }

 // applying the mapping

 remap(image,  // source image

  result, // destination image

  srcX,   // x map

  srcY,   // y map

  INTER_LINEAR); // interpolation method

}

int main()

{

 cv::Mat image= cv::imread("boldt.jpg",0);

 // image is resize for book printing

 cv::resize(image, image, cv::Size(), 0.6, 0.6);

 cv::namedWindow("Image");

 cv::imshow("Image",image);

 cv::Mat result;

 wave(image,result);

 cv::namedWindow("Remapped image");

 cv::imshow("Remapped image",result);

 cv::waitKey();

 {

  // the map functions

  cv::Mat srcX(image.rows,image.cols,CV_32F); // x-map

  cv::Mat srcY(image.rows,image.cols,CV_32F); // y-map

  // creating the mapping

  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-3*sin(j/6.0);

   }

  }

  remap(result,  // source image

   image, // destination image

   srcX,   // x map

   srcY,   // y map

   INTER_LINEAR); // interpolation method

  cv::imshow("ImageBack",image);

 }

 cv::waitKey();

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: