一、重映射及remap()函数介绍

重映射,就是把一幅图像中某位置的像素放置到另一图像指定位置的过程。即:

在重映射过程中,图像的大小也可以同时发生改变。此时像素与像素之间的关系就不是一一对应关系,因此在重映射过程中,可能会涉及到像素值的插值计算。

src:输入图像,灰度图或真彩图均可。

dst:输出图像,要求大小和xmap,ymap相同,通道数目及数据类型和src相同。

xmap:用于存放图像X方向的映射关系,类型必须是CV_32FC1的。

ymap:用于存放图像Y方向的映射关系,类型必须是CV_32FC1的。

interpolation:插值方式。

borderMode:图像边界处理方式,边界的类型有以下几种:

1)BORDER_REPLICATE:重复:                 aaaaaa|abcdefgh|hhhhhhh

2)BORDER_REFLECT:反射:                       fedcba|abcdefgh|hgfedcb

3)BORDER_REFLECT_101:反射101:         gfedcb|abcdefgh|gfedcba

4)BORDER_WRAP:外包装:                      cdefgh|abcdefgh|abcdefg

5)BORDER_CONSTANT:常量复制:          iiiiii|abcdefgh|iiiiiii(i的值由后一个参数Scalar()确定,如Scalar::all(0) )

borderValue:若上一参数为BORDER_CONSTANT,则由此参数确定补充上去的像素值。可选用默认值。

二、程序及结果分享

#include

#include

#include

using namespace std;

using namespace cv;

int main()

{

Mat mImage = imread("goalkeeper.jpg");

if (mImage.data == 0)

{

cerr << "Image reading error !" << endl;

system("pause");

return -1;

}

namedWindow("The original image", WINDOW_NORMAL);

imshow("The original image", mImage);

Mat mResult = mImage.clone();

//mMapX和mMapY的数据类型必须是 CV_32FC1

Mat mMapX(mImage.rows, mImage.cols, CV_32FC1, Scalar(0));

Mat mMapY(mImage.rows, mImage.cols, CV_32FC1, Scalar(0));

int Rows = mImage.rows;

int Cols = mImage.cols;

for (int i = 0; i

{

float* ptrX = mMapX.ptr(i);

float* ptrY = mMapY.ptr(i);

for (int j = 0; j < Cols; j++)

{

//左右翻转

ptrX[j] =(float)(Cols - j);

ptrY[j] = (float) i;

//上下翻转

//ptrX[j] = (float)j;

//ptrY[j] = (float)(Rows - i);

}

}

remap(mImage, mResult, mMapX, mMapY, INTER_LINEAR);//重映射

namedWindow("The processed image",WINDOW_NORMAL);

imshow("The processed image", mResult);

waitKey();

destroyAllWindows();

return 0;

}

学会重映射,以后门神就单张单张地买,终于可以省钱娶媳妇了,哈哈哈:

opencv remap matlab,C++ Opencv remap()重映射函数详解及使用示例相关推荐

  1. OpenCV实战(16)——角点检测详解

    OpenCV实战(16)--角点检测详解 0. 前言 1. Harris 特征检测器 1.1 检测 Harris 角点 1.2 cv::cornerHarris 函数参数 2. 可追踪的良好特征 3. ...

  2. 地理坐标系、大地坐标系与地图投影与重投影详解

    地理坐标系.大地坐标系与地图投影与重投影详解 基本概念 首先简单介绍一下地理坐标系.大地坐标系以及地图投影的概念: 地理坐标系:为球面坐标. 参考平面地是椭球面,坐标单位:经纬度: 投影坐标系:为平面 ...

  3. MATLAB调用refprop计算物性参数详解

    MATLAB调用refprop计算物性参数详解 欢迎使用Markdown编辑器 欢迎使用Markdown编辑器 REFPROP(REference Fluid PROPerties)是一款国际权威工质 ...

  4. matlab车牌匹配时读取,基于Matlab的车牌识别(完整版)详解.doc

    基于Matlab的车牌识别(完整版)详解.doc 基于Matlab的车牌识别 摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展.本文从预处理.边缘检测.车牌定位.字符分割.字符 ...

  5. 基于深度神经网络的图像分类与训练系统(MATLAB GUI版,代码+图文详解)

    摘要:本博客详细介绍了基于深度神经网络的图像分类与训练系统的MATLAB实现代码,包括GUI界面和数据集,可选择模型进行图片分类,支持一键训练神经网络.首先介绍了基于GoogleNet.ResNet进 ...

  6. matlab对图像操作函数的详解(笔记1)

    matlab对图像操作函数的详解 一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 注:计算机E盘上要有w01相应的.ti ...

  7. matlab调用opencv库,matlab调用opencv库

    matlab中有许多图像处理的函数简单方便,比如矩阵x 求垂直积分 直接sum(x) 就可以了.不知道OPENCV里面有没有类似的功能,反正我是没找到.就准备用matlab调用OPENCV里面的函数. ...

  8. matlab在数值计算中的应用,详解MATLAB在科学计算中的应用

    详解MATLAB在科学计算中的应用 编辑 锁定 讨论 上传视频 <详解MATLAB在科学计算中的应用>是2011年电子工业出版社出版的图书,作者是陈泽占海明. 书    名 详解MATLA ...

  9. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码

    粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...

最新文章

  1. Angular--TypeScript finalize 方法
  2. 2019年东莞特长生 散步
  3. sublime text 3 中的php代码语法检测
  4. session.merge 缓存不更新_这几个缓存更新的设计你都知道吗?
  5. 多云互操作性!=云服务聚合
  6. 【转】iPython入门技巧
  7. java 合并算法思想_Java实现合并两个有序序列算法示例
  8. 多元回归模型与热力图绘制
  9. 软件体系结构六大质量属性-浅析淘宝网
  10. [OpenStack] OpenStack Essex - Glance api 的实验(curl)
  11. 11111111111111111111
  12. 大型电商数据库设计与分析
  13. 【人工智能】“深度学习”这十年:52篇顶级论文带你走完人工智能之路
  14. 如何让计算机虚拟出多个桌面,多屏显示算什么?win10自带神技能,桌面秒变多屏幕,创建无上限...
  15. 【优秀课设】基于Linux粤嵌GEC6818开发板的电子乐队程序设计(四种模式:和弦模式、键盘模式、鼓点模式、编曲模式)
  16. mysql workbench pk_mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI_MySQL - numeric
  17. Python标准库collections库:超好用的counter计数器,不接受反驳!
  18. 上线切换 - 如何导入在制品
  19. 常见电脑硬件故障有哪些?如何解决?~~~CPU故障
  20. R语言实战笔记--第十五章 处理缺失数据

热门文章

  1. Java简易转码工具(一个字符串编码是GBK的文本文件,内容转成UTF-8编码)
  2. 以太坊就是公链之王,不接受反驳
  3. 大学杂念集 随便写写
  4. 汇编语言中sbb是什么意思_汇编语言里 sub是 什么功能?
  5. android 异步编程,flutter异步编程-事件循环、Isolate、Stream(流)
  6. 织梦后台模块管理空白不显示的解决方法
  7. 两台无线路由桥接教程
  8. 零基础无经验,该怎么学编程,要学多久?
  9. centos7上先要关闭httpd服务之后再卸载,反正卸载之后就是安装不上一脸懵逼
  10. c语言输出行末不得有多余空格,2019年春季学期第四周作业