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

本文详细介绍了OpenCV中的remap()函数,该函数用于图像的坐标映射,通过建立原图像与目标图像之间的映射关系,实现像素的位置变换。内容涵盖了映射类型和remap()函数的使用,包括图像的缩小、Y方向翻转、X方向翻转及X、Y方向均翻转等操作。
摘要由CSDN通过智能技术生成

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

图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后图像任意像素反映射在原图像的坐标位置。
opencv中提供重映射等操作,其中重映射就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程,需要获得一些插值为非整数像素的坐标。对于原图像和目标图像,满足下式:
G(x,y)=f(h(x,y))
G()是目标图像,f()是源图像,而h(x,y)是作用于(x,y)的映射方法函数。

1、remap()函数

函数remap使用指定的映射转换源图像,其公式为:
在这里插入图片描述

Void remap(InputArray src,			// 源图像
OutputArray dst,					// 目标图像
InputArray map1,					// 第一个映射 ,x坐标
InputArray map2,					// 第二个映射 ,y坐标
int interpolation,					// 表示插值方法
int borderMode=BORDER_CONSTANT,		// 表示边界插值类型
const Scalar&borderValue=Scalar())	// 表示插值数值

 map1和map2:代表目标图中的(x,y)点在原图像的x坐标和y坐标;
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

#define WINDOW_NAME "重映射"        //为窗口标题定义的宏
Mat g_srcImage, g_dstImage;
Mat g_map_x, g_map_y;

int main(int argc, char *argv[])
{
   
    QCoreApplication a(argc, argv);

    printf( "\n\t按键操作说明: \n\n"
        "\t\t键盘按键【ESC】- 退出程序\n"
        "\t\t键盘按键【1】-  第一种映射方式:缩放\n"
        "\t\t键盘按键【2】- 第二种映射方式:上下翻转\n"
        "\t\t键盘按键【3】- 第三种映射方式:左右翻转\n"
        "\t\t键盘按键【4】- 第四种映射方式:上下左右180度翻转\n" 	 );

    g_srcImage = imread( "F:/C++/2. OPENCV 3.1.0/TEST/2.jpg", 1 );
    if(!g_srcImage.data ) {
    printf("读取图片错误,请确定目录下是否有imread函数指定的图片存在~! \n"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值