OpenCV几何图像变换(6)计算反转仿射变换函数invertAffineTransform()的使用

news/2024/11/9 16:43:23/
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

反转一个仿射变换。
该函数计算由 2×3 矩阵 M 表示的逆仿射变换:
[ a 11 a 12 b 1 a 21 a 22 b 2 ] \begin{bmatrix} a_{11} & a_{12} & b_1 \\ a_{21} & a_{22} & b_2 \end{bmatrix} [a11a21a12a22b1b2]
结果也是一个 2×3 矩阵,与 M 同类型。
invertAffineTransform() 函数用于计算给定仿射变换矩阵的逆矩阵。仿射变换矩阵通常是一个 2×3 的矩阵,用于描述图像的平移、旋转、缩放等变换。此函数计算的逆变换矩阵可以用来撤销原始变换的效果。

函数原型


void cv::invertAffineTransform	
(InputArray 	M,OutputArray 	iM 
)		

参数

  • 参数M 原始的仿射变换
  • 参数iM 输出逆仿射变换。

代码示例


#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>// 函数声明
cv::Mat invertAffineTransform( const cv::Mat& M );int main()
{// 创建一个仿射变换矩阵cv::Mat M = ( cv::Mat_< double >( 2, 3 ) << 1, 0.5, 0, 0, 1.5, 0 );// 调用函数计算逆矩阵cv::Mat iM;cv::invertAffineTransform( M,iM );std::cout << "Original Affine Transformation Matrix:\n" << M << "\n";std::cout << "Inverse Affine Transformation Matrix:\n" << iM << "\n";return 0;
}

运行结果

在这里插入图片描述


http://www.ppmy.cn/news/1515981.html

相关文章

接口如何设计

在企业中&#xff0c;前后端分离开发是一种常见的开发模式。在这种模式下&#xff0c;Java 程序员通常负责设计和实现后端 API 接口&#xff0c;而前端工程师则根据这些接口来开发用户界面和功能。 首先明确该接口是一个前后端交互接口&#xff0c;该接口由前端通过HTTP协议进…

第2章 C语言基础知识

第2章 C语言基础知识 1.printf()函数 在控制台输出数据&#xff0c;需要使用输出函数&#xff0c;C语言常用的输出函数为printf()。 printf()函数为格式化输出函数&#xff0c;其功能是按照用户指定的格式将数据输出到屏幕上。 printf(“格式控制字符串”,[输出列表]); 格式控…

Ruby Web服务开发:构建高效RESTful API的秘诀

标题&#xff1a;Ruby Web服务开发&#xff1a;构建高效RESTful API的秘诀 Ruby作为一种灵活、高效的编程语言&#xff0c;通过其丰富的库和框架&#xff0c;为开发Web服务提供了强大的支持。本文将深入探讨如何在Ruby中开发Web服务&#xff0c;特别是RESTful API。我们将从基…

[JAVA]什么是泛型?泛型在Java中的应用

目录 1.初识泛型的应用 2.创建自定义泛型类 3.利用较小范围的泛型方法定义 4.了解泛型通配符&#xff0c;什么是泛型通配符&#xff1f; 1.初识泛型的应用 —所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。 —定…

前端宝典十六:深入浅出8大设计模式

本文主要探讨前端开发中的各种设计模式&#xff0c;主要分类有&#xff1a; 单例模式建造者模式代理模式装饰器模式适配器模式策略模式观察者模式发布订阅模式 通过对他们实际开发中的使用场景的解析&#xff0c;深入浅出的一起更全面直观的进行学习&#xff1a; 一、单例模…

基于vue3和audio封装的简易音频播放器

样式如图所示 <template><div class"audio-player"><div class"player_top" flex-ac flex-justify-between ><div class"fileName genericTitle" fs-28 l-height-32 height-64 pr-42 flex-ac><span class"t…

机器人走路的问题

public class Test52 {//假设有N个位置&#xff0c;记为1-N&#xff0c;N大于或等于2//开始机器人在M位置上&#xff08;M为1-N中的一个&#xff09;//如果机器人来到1位置&#xff0c;那么下一步只能向右来到2位置//如果机器人来到N位置&#xff0c;那么下一步只能向左来到N-1…

NYX靶机笔记

NYX靶机笔记 概述 VulnHub里的简单靶机 靶机地址&#xff1a;https://download.vulnhub.com/nyx/nyxvm.zip 1、nmap扫描 1&#xff09;主机发现 # -sn 只做ping扫描&#xff0c;不做端口扫描 nmap -sn 192.168.84.1/24 # 发现靶机ip为 MAC Address: 00:50:56:E0:D5:D4 (V…