在使用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. C++ Vector 使用心得
  2. VSAN常见故障2018-11-06
  3. 循环,数组,函数作业
  4. MongoDB集群安装与配置2.4.3版本
  5. 在Amazon S3 上架设静态网站
  6. python(12)给文件读写上锁
  7. 有关《家》的经典歌曲_【经典】50首诗词,做成50首歌曲,够你享受一整年!(收藏了慢慢听)...
  8. 一个设置提升Microsoft Store下载速度
  9. sqlServer相关
  10. oop-klass_在PHP和MySQL中处理时间和日期-OOP版本
  11. 随机游走模型 matlab,随机游走的matlab实现
  12. java专有技术名词_关于Java的专有名词
  13. SQLServer身份证号或手机号字段隐藏某几位显示
  14. python游戏联机后直接掉线,怪物猎人世界联机掉线怎么办 Steam联机掉线解决办法整理(一)...
  15. 电脑按键坏掉之后的解决办法
  16. 使用lucene的多字段排序--回复网友BUFFON
  17. 【志强课堂】每天晒图有什么作用?
  18. 碰撞检测中的K_DOPS算法的研究
  19. 无线充电仿真 simulink llc谐振器实现恒压输出 WPT
  20. 5分钟完成核磁共振检查,Facebook的AI技术现在还经不住考验

热门文章

  1. 机器人的洪流—刷库、撞库那些事儿
  2. 安装UR_Driver后示教器和PC端网络的设置
  3. LC3-仿真器的安装
  4. myBatis mapper.xml 文件共用
  5. QGIS基本功 | 16 要素渲染——地理数据可视化之道
  6. 使用XSSFRangeCopier跨工作簿将多个excel汇总到一个excel的多个sheet
  7. 【简书读书社】每个周末,一起来读简书电子书(第十三期)
  8. 基于京东云云主机搭建WordPress网站
  9. Linux网络安全策略
  10. macOS 挂载 EFI 分区