remap的困惑说明
在使用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的困惑说明相关推荐
- 疑问:undistortPoints()与remap()畸变校正后,结果相差很大
最近在做图像点畸变校正相关的项目,发现OpenCV中的校正函数:undistortPoints()与remap()二者矫正畸变后,结果相差很大,原因不明,这里记录下来,如有大神知其中差异,请赐教,感激 ...
- OpenCV 畸变校正函数undistortPoints()与remap()详解及校正效果对比
一.概述 前面写过一篇博客–"疑问:undistortPoints()与remap()畸变校正后,结果相差很大",博客中对比了OpenCV中自带畸变校正函数undistortPoi ...
- ROS中Remap标签详解
remap标签介绍 remap标签"允许你以更结构化的方式将名称重新映射参数传递给ROS节点,而不是直接设置<节点>的参数属性. 作用 重命名一个已经存在的主题. 在自己的lan ...
- 【干货】NLP中对困惑度感到困惑?
视学算法推荐 作者:时晴 来自:炼丹笔记 困惑度(Perplexity)在NLP中是个最流行的评估指标,它用于评估语言模型学的到底有多好.但是很多炼丹师可能至今对"困惑度"依然感到 ...
- 《Python数据分析与挖掘实战》一第1章 数据挖掘基础1.1 某知名连锁餐饮企业的困惑...
本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第1章,第1.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...
- 一位39岁程序员的困惑:知道得越多编程越慢怎么办?
Zilk1988 年 14 岁时就开始编程,此后尝试过几种职业,最终还是在 1997 年决定成为职业程序员(又称码农),现在已经 39 岁,对此选择依然无怨无悔. 但是后来他发现一个问题,自己的经验越 ...
- 困惑度 (perplexity)
困惑度 (perplexity) 在自然语言处理中,对于一个语言模型,一般用困惑度来衡量它的好坏,困惑度越低,说明语言模型面对一句话感到困惑的程度越低,语言模型就越好. 对于LDA模型,最常用的两个评 ...
- 类的包访问权限:《Java编程思想》中一段话的困惑
类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...
- TranslateMessage()的困惑
对字符信息的困惑,当某键按下产生WM_KEYUP消息,经过TranslateMessage(&Msg)后:DispatchMessage()是如何动作的呢?而完整的信息是在WM_KEYDOWN ...
最新文章
- docker部署springboot_Docker+SpringBoot快速构建和部署应用
- 在FL2440上使用kei MDK 调试程序(J-link)
- Taro+react开发(25)三元
- python读取postgresql数据库并发送相关提醒邮件
- 玩转Nodejs日志管理log4js
- 极大似然估计、拉普拉斯平滑定理、M-估计详解
- linux kernel基本构成的内容有下列哪些项_Linux内核线程kernel thread详解
- pandas string funcs
- for循环提高内存访问效率的做法
- js上传图片到服务器
- 用matlab指数传递函数nyquist,用MATLAB制Nyquist图.ppt
- html如何加黑色蒙板,Photoshop中怎么添加黑色蒙版?
- 异形与铁血战士关系 时间线
- Thematic框架主题结构图
- 《Adobe After Effects CC 2017 经典教程》资源下载地址
- 【1235. 规划兼职工作】
- json面试题_JAVA SSM 框架面试题,附答案!
- Python wxpy 操作微信 大全集
- 区块链服务器站点标题,区块链,人人皆可参与
- Java并发基石CAS原理以及ABA问题