在使用remap函数时一直没明白那个map_x,和map_y一直搞混了,通过实验来记录一下以防以后忘记了

先看一段代码

#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;

int main()
{
Mat srcImage=imread("1.jpg",1);
imshow("yuantu",srcImage);
Mat dstImage,map_x,map_y;
dstImage.create(srcImage.size(),srcImage.type());
map_x.create(srcImage.size(),CV_32FC1);
map_y.create(srcImage.size(),CV_32FC1);
for(int i=0;i<srcImage.rows;i++)
for(int j=0;j<srcImage.cols;j++)
{
//---------上下变换
map_x.at<float>(i,j)=static_cast<float>(j);
map_y.at<float>(i,j)=static_cast<float>(srcImage.rows-i);
//--------------左右变换
//map_x.at<float>(i,j)=static_cast<float>(i);//x轴横着的
//map_y.at<float>(i,j)=static_cast<float>(srcImage.cols-j);//y轴竖着的
}
remap(srcImage,dstImage,map_x,map_y,INTER_LINEAR);
imshow("xianshi",dstImage);
waitKey(0);
return 0;
}

代码中的map_x实际上记录的是对应srcImage中(i,j)位置的横坐标,map_y实际上记录的是(i,j)位置的纵坐标,而我们在这里把像素操作的i当做了横坐标,j当做了纵坐标。

所以有时会混淆怎么赋值.看看下图:

map_x是横着跑的,map_y是竖着跑的。来具体看看像素:

假设这是一个图片

map_x上面对应的是:

map_y是:

所以如果我要让第一行的12和98换位置,那么

map_x:

3 1 2 0

0 1 2 3

0 1 2 3

map_y不变

而我们表示像素的的时候12是srcImage.at<uchar>(0,0) 98是srcImage.at<uchar>(0,3);

简写a(i1,j1),a(i1,j2);很容易误认为换j,而这里map_x可以看成是在屏幕x轴(左上角横着的)的值,map_y可以看成是屏幕y轴(左上角往下)的值,那么map_x存的是像素表示中的j值(列),map_y存的是像素表示中的i值(行).这和用图像构建一个矩形是一样的image.cols是宽,image.row是高.

remap的困惑说明相关推荐

  1. 疑问:undistortPoints()与remap()畸变校正后,结果相差很大

    最近在做图像点畸变校正相关的项目,发现OpenCV中的校正函数:undistortPoints()与remap()二者矫正畸变后,结果相差很大,原因不明,这里记录下来,如有大神知其中差异,请赐教,感激 ...

  2. OpenCV 畸变校正函数undistortPoints()与remap()详解及校正效果对比

    一.概述 前面写过一篇博客–"疑问:undistortPoints()与remap()畸变校正后,结果相差很大",博客中对比了OpenCV中自带畸变校正函数undistortPoi ...

  3. ROS中Remap标签详解

    remap标签介绍 remap标签"允许你以更结构化的方式将名称重新映射参数传递给ROS节点,而不是直接设置<节点>的参数属性. 作用 重命名一个已经存在的主题. 在自己的lan ...

  4. 【干货】NLP中对困惑度感到困惑?

    视学算法推荐 作者:时晴 来自:炼丹笔记 困惑度(Perplexity)在NLP中是个最流行的评估指标,它用于评估语言模型学的到底有多好.但是很多炼丹师可能至今对"困惑度"依然感到 ...

  5. 《Python数据分析与挖掘实战》一第1章 数据挖掘基础1.1 某知名连锁餐饮企业的困惑...

    本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第1章,第1.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...

  6. 一位39岁程序员的困惑:知道得越多编程越慢怎么办?

    Zilk1988 年 14 岁时就开始编程,此后尝试过几种职业,最终还是在 1997 年决定成为职业程序员(又称码农),现在已经 39 岁,对此选择依然无怨无悔. 但是后来他发现一个问题,自己的经验越 ...

  7. 困惑度 (perplexity)

    困惑度 (perplexity) 在自然语言处理中,对于一个语言模型,一般用困惑度来衡量它的好坏,困惑度越低,说明语言模型面对一句话感到困惑的程度越低,语言模型就越好. 对于LDA模型,最常用的两个评 ...

  8. 类的包访问权限:《Java编程思想》中一段话的困惑

    类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...

  9. TranslateMessage()的困惑

    对字符信息的困惑,当某键按下产生WM_KEYUP消息,经过TranslateMessage(&Msg)后:DispatchMessage()是如何动作的呢?而完整的信息是在WM_KEYDOWN ...

最新文章

  1. docker部署springboot_Docker+SpringBoot快速构建和部署应用
  2. 在FL2440上使用kei MDK 调试程序(J-link)
  3. Taro+react开发(25)三元
  4. python读取postgresql数据库并发送相关提醒邮件
  5. 玩转Nodejs日志管理log4js
  6. 极大似然估计、拉普拉斯平滑定理、M-估计详解
  7. linux kernel基本构成的内容有下列哪些项_Linux内核线程kernel thread详解
  8. pandas string funcs
  9. for循环提高内存访问效率的做法
  10. js上传图片到服务器
  11. 用matlab指数传递函数nyquist,用MATLAB制Nyquist图.ppt
  12. html如何加黑色蒙板,Photoshop中怎么添加黑色蒙版?
  13. 异形与铁血战士关系 时间线
  14. Thematic框架主题结构图
  15. 《Adobe After Effects CC 2017 经典教程》资源下载地址
  16. 【1235. 规划兼职工作】
  17. json面试题_JAVA SSM 框架面试题,附答案!
  18. Python wxpy 操作微信 大全集
  19. 区块链服务器站点标题,区块链,人人皆可参与
  20. Java并发基石CAS原理以及ABA问题

热门文章

  1. 反向延长线段什么意思_关于线段的延长线的概念教学反思
  2. 2018科大讯飞的Java笔试题附带参考答案
  3. 中国人民公安大学网络对抗技术实验三
  4. 微信小程序开发环境(阿里云服务搭建+可运行的demo)
  5. 【英语】一个公式搞定时间介词
  6. 敏感词过滤之——自定义构建查询词库与快速查询实现
  7. SPSS(十四)SPSS之多维尺度分析(图文+数据集)
  8. Android 二维图形处理引擎 Skia
  9. 快速理解LAN、WAN和WLAN的区别? -- 转载
  10. courant数_柯朗数(Courant number)研究