首先解释下remap()函数的作用及各参数的意义!

remap就是用来做重映射的,重映射的含义暂且不说,等会儿上源码并解释完源码后自然就知道了!

函数原型如下:

C++: void remap(InputArray src, OutputArraydst, InputArray map1, InputArray map2, int interpolation, intborderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar())
第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可,且需为单通道8位或者浮点型图像。
第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,即这个参数用于存放函数调用后的输出结果,需和源图片有一样的尺寸和类型。
第三个参数,InputArray类型的map1,里面存储着源图像中各像素点的x坐标在目标图像中的x坐标,x坐标就是代表列号
第四个参数,InputArray类型的map2,里面存储着源图像中各像素点的y坐标在目标图像中的y坐标,y坐标就是代表行号
第五个参数,int类型的interpolation,插值方式,可选的插值方式如下:
INTER_NEAREST - 最近邻插值
INTER_LINEAR – 双线性插值(默认值)
INTER_CUBIC – 双三次样条插值(逾4×4像素邻域内的双三次插值)
INTER_LANCZOS4 -Lanczos插值(逾8×8像素邻域的Lanczos插值)
第六个参数,int类型的borderMode,边界模式,有默认值BORDER_CONSTANT,表示目标图像中“离群点(outliers)”的像素值不会被此函数修改。具体什么叫离群点我现在也不清楚!
第七个参数,const Scalar&类型的borderValue,当有常数边界时使用的值,其有默认值Scalar( ),即默认值为0。具什么叫有常数边界,我现在也不清楚!//映射关系  (x, y) <-> (cols - x, y);

最重要的是需要搞清楚!!!!!!
 //数字图像的原点是在左上角,y轴竖直向下(行数),x轴水平向右(列数)
//下面的i定义的是行数,所以代表的是图像的y轴,而j定义的是列数,所以代表的是图像的x轴。

#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
 
 cv::Mat srcImage(2,3,CV_8UC1);
 srcImage.at<uchar>(0,0)=1;
    srcImage.at<uchar>(0,1)=2;
 srcImage.at<uchar>(0,2)=3;
 srcImage.at<uchar>(1,0)=128;
 srcImage.at<uchar>(1,1)=127;
 srcImage.at<uchar>(1,2)=126;
 int rows=srcImage.rows;
 int cols=srcImage.cols;
 cv::imshow("test",srcImage);
 std::cout<<srcImage<<std::endl;
 cv::Mat xmap(srcImage.size(),CV_32FC1);
 cv::Mat ymap(srcImage.size(),CV_32FC1);
 for(int j=0;j<rows;j++)
 {
  for(int i=0;i<cols;i++)
  {
   xmap.at<float>(j,i)=i;
   ymap.at<float>(j,i)=rows-1-j;
  }
 }
 cv::Mat result(srcImage.size(),srcImage.type());
 cv::remap(srcImage,result,xmap,ymap,CV_INTER_LINEAR,cv::BORDER_CONSTANT,cv::Scalar(0,0,0));
 cv::imshow("fanzhuan",result);
 std::cout<<result<<std::endl;
 cv::waitKey(0);
 return 0;
}
注意rows-1而不是rows,实际跑下代码可以看出因为从0开始的

remap函数的使用问题相关推荐

  1. Opencv remap函数

    Opencv remap函数 函数签名 实例 应用 亚像素信息 扭曲特效 函数签名 void cv::remap ( InputArray src, OutputArray dst, InputArr ...

  2. OpenCV每日函数 几何图像变换模块 (8) remap函数

    一.概述 对图像应用通用几何变换.函数 remap 使用指定的映射转换源图像: 其中具有非整数坐标的像素值是使用一种可用的插值方法计算的. mapx 和 mapy 可以分别编码为 map1 和 map ...

  3. OpenCV图像处理——重映射 remap函数

    在<学习OpenCV3,O'Reilly系列丛书>中的第11章常见的图像变换中讲到的"任意映射",Remap函数.函数cv::remap通常用来纠正校准的立体图像,包括 ...

  4. opencv remap matlab,如何使用OpenCV的remap函数?

    这只是对文件的一个简单的误解,我不怪你--我也花了几次摸索才明白.文档很清楚,但是这个函数可能没有按您预期的方式工作:事实上,它在与我最初预期相反的方向工作. remap()没有做的是获取源图像的坐标 ...

  5. OpenCV 中的 remap 函数

    上一篇文章中提到 warpAffine 会分块处理,将坐标映射和插值系数分别存储下来,然后借助 remap 来实现最终的映射.而 remap 会根据映射关系取源像素并加权计算出目的像素值.其最核心的计 ...

  6. OpenCV(C++) 使用stereoRectify()、initUndistortRectifyMap()、remap()函数,验证双目标定效果。

    在此先声明一下: 使用PnP求得的变换是棋盘格坐标系至相机坐标系的变换. 双目外参标定结果是左目至右目的变换. R12 = R2 * R1.t(); T12 = T2 - R12 * T1; 假设已经 ...

  7. Python-OpenCV 的 remap函数

    恒等映射 result_img 和 原图一模一样 import cv2 import numpy as npimg = cv2.imread("OpenCV.png") rows, ...

  8. R语言:再谈REmap包

    之前写过一篇关于Remap的文章,原文链接为:http://blog.csdn.net/wzgl__wh/article/details/53108754 但有许多网友都存在不同的问题,在我的微信公众 ...

  9. OpenCV学习笔记(十四):重映射:remap( )

    OpenCV学习笔记(十四):重映射:remap( ) 图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后 ...

最新文章

  1. 两个变量交换值 和按位异或的理解
  2. 十年Java编程开发生涯,java计算时间差毫秒
  3. Windows 曝漏洞 —— 影响所有版本
  4. eclipse javaw.exe in your current path问题
  5. Python 技术篇 - 用xlrd库和xlwt库操作excel,对excel进行读取和写入实例演示
  6. pyqt界面屏幕分辨率自适应_后台系统界面设计踩过的那些坑
  7. 女士怎么就不适合PhP呢,女人可以不美丽,但不能不智慧
  8. .git文件过大,怎么删除
  9. python入门(七):CGI编程
  10. 多道程序设计模拟——C语言实现
  11. C++ 合并两个有序链表
  12. “word另存为PDF时,参考文献的上标都变为正常文本“的解决办法
  13. 音频-什么是PCM编码格式?
  14. mac 安装android apk文件,.apk文件用苹果系统怎么打开
  15. ModSecurity的规则
  16. FastText学习笔记
  17. MessageBox confirm弹框确认和取消按钮的使用-回调
  18. CMMI五个成熟度级别和对应22个过程域(PA)
  19. 为什么要知己知彼?要有信息?
  20. Linux ps命令

热门文章

  1. 邮件协议SMTP、POP3和IMAP
  2. 数据结构算法与应用关于二叉树在信号放大器放置的应用
  3. table表格中的cellspacing属性
  4. FFmpeg及音频简介
  5. win命令行连接redis服务
  6. CMD命令进入退出文件夹
  7. 一米长的绳子,随机剪两刀,最长的一段有多长?
  8. 关于PHP--支付宝接口开发文档
  9. 2022 医疗卫生行业网络安全分析报告
  10. 启动城市级智慧停车系统,让每一次出行都更加顺畅