【opencv+python】图像处理之二、几何变换(仿射与投影)的原理

程序员通勤双肩包,下单送全年 CSDN 会员 防泼水面料电脑包,保护笔记本电脑,背负轻便,下单再赠 Coding Plan,看技术干货、查文档、下载源码,一站式搞定学习需求 阅读详情

该系列文章为 OpenCV+Python Tutorials的学习笔记
代码托管在Github
转载请注明: http://blog.csdn.net/a352611/article/details/51417779 [三记的博客]

写在文章开始之前:
关于几何变换,常见的资料都没有把数学原理部分讲透彻,基本都是照着课本说,导致我很多地方无法彻底理解.思前想后还是把这一块分成两个部分,一部分专门讲数学原理,一部分专门讲应用.本文为数学原理部分。


1. 几何变换的数学本质 Geometry Transformation

对图像的几何变换本质上是一种线性变换,其数学本质为

I n e w = T I o l d I_{new}= TI_{old} Inew=TIold

即通过变换矩阵 T T T将原图上的点的位置 I o l d I_{old} Iold变换到新的位置,从而得到新的图像 I n e w I_{new} Inew

2DTransformation

2D平面变换示意图(“Computer Vision: Algorithms and Applications”, Richard Szeliski)

  • Translation 平移
  • Euclidean(rigid, rotation) 旋转
  • Scale 缩放;图中没有画出
  • Similarity 相似变换;结合旋转,平移和缩放
  • Affine 仿射变换;想象在similarity的基础上用两只手对图像进行按压拉伸
  • Projective 投影变换;想象投影仪做的事情,将一个面投影到另外一个面的情况

2. 齐次坐标 Homogeneous coordinates

简单的说法就是对于点 P = [ x ; y ] T P=[x;y]^T P=[x;y]T我们无从得知这是一个点还是向量,之所以纠结这个概念的原因在于:平移对于向量没有意义,但对点有意义。我们希望对线性变换有一个统一的描述,结果发现在Homogeneous coordinates齐次坐标下我们能够和谐统一地描述这些。怎么把一个点转换到齐次坐标下来描述呢?很简单的一个方法是

直接将点 P = [ x ; y ] T P=[x;y]^T P=[x;y]T变为 P = [ x ; y ; 1 ] T P=[x;y;1]^T P=[x;y;1]T
而向量 P = [ x ; y ] T P=[x;y]^T P=[x;y]T变为 P = [ x ; y ; 0 ] T P=[x;y;0]^T

一文解决!opencv中的仿射变换(仿射变化的原理,使用,提升拓展的总结) 仿射变化的原理,使用及相关拓展的总结 仿射变换仿射变化的原理,使用及相关拓展的总结前言简单的例子原理提升拓展flags:插值方法borderMode:像素外推方法(边界像素模式)borderValue:边界不变时使用的值结尾 前言 看了下原理计划上榜的文章,没错,我也会写标题了,不过本文内容无愧于题目。给大家详细讲一讲opencv里的仿射变换,也就是cv2.getAffineTransform和c... 阅读详情

相关推荐

opencv+python图像处理之二、几何变换(仿射投影)的应用

该系列文章为 OpenCV+Python Tutorials的学习笔记 代码托管在Github 转载请注明: http://blog.csdn.net/a352611/article/details/51416769 [三记的博客]写在文章开始之前: 关于几何变换,常见的资料都没有把数学原理部分讲透彻,基本都是照着课本说,导致我很多地方无法彻底理解.思前想后还是把这一块分成两个部分,一部分

三记的专栏 2万+

Affine_projection_投影仿射算法_

投影仿射算法的MATLAB仿真程序,实现投影仿射算法基本功能

OpenCV——几何变换原理python实现和c++实现)

Datawhale 计算机视觉基础-图像处理(上)-Task02 几何变换 2.1 简介 该部分将对基本的几何变换进行学习,几何变换原理大多都是相似,只是变换矩阵不同,因此,我们以最常用的平移和旋转为例进行学习。在深度学习领域,我们常用平移、旋转、镜像等操作进行数据增广;在传统CV领域,由于某些拍摄角度的问题,我们需要对图像进行矫正处理,而几何变换正是这个处理过程的基础,因此了解和学习几何变换也...

qq_44957388的博客 1444

自适应滤波器原理——仿射投影算法(AP)

(二)如果mn(行数大于列数)即方程的个数大于未知数的个数 此时方程组不存在精确解 只存在近似解。仿射投影算法 (Affine projection algorithm) 是运算量介于 LMS 和 RLS 之间的一种自适应算法。:1≤L

qq_42233059的博客 3904

Opencv 仿射变换原理代码解析

仿射变换原理 仿射变换是线性变换,有一张图可以很好地展示放射变换的效果 其实仿射变换是透视变换的一种特例,但是透视变换的自由度更高,3*3的矩阵表示,透视变换的自由度是8,而放射变换可以用2*3的矩阵表示,【A B】 A是2*2的旋转部分+缩放因子S,而B是平移部分+缩放因子,是一个5个自由度的参数矩阵。 典型的放射变换包括平移,缩放和旋转。 其中Opencv中的旋转由于是绕某个图像坐标...

u010796650的博客 3101

OpenCV-仿射变换原理

线性变换保持向量的加法和标量乘法的性质。在二维空间中,线性变换可以通过一个2x2的矩阵来表示。这个矩阵描述了原图像中点的坐标如何变换到目标图像中的新坐标。线性变换包括旋转、缩放和错切(或称为剪切)。旋转:图像围绕某一点旋转一定的角度。缩放:图像在x轴和y轴方向上分别进行放大或缩小。错切:图像在x轴或y轴方向上发生倾斜。平移变换是指图像在x轴和y轴方向上分别移动一定的距离。平移变换不能通过2x2矩阵单独表示,因为它涉及到坐标的加法,而不是线性变换中的乘法。

2301_79853469的博客 2991

深入理解自适应滤波器:LMS仿射投影算法

本文深入探讨了自适应滤波器中的两种重要算法——最小均方(LMS)算法仿射投影算法(APA)。分析了LMS算法在实际应用中因其简单性和稳健性而受到广泛欢迎的原因,并解释了其H∞优化理论。进一步探讨了APA算法如何通过重用历史数据来提高收敛速度,但同时带来了计算复杂度的增加和失调水平的问题。文章还介绍了归一化LMS(NLMS)作为APA的一个特例,并讨论了复数值情况下的广泛线性LMS算法,为在线学习提供了一种处理复数数据的方法。

weixin_35987118的博客 702

OpenCV-Python实战(4)——OpenCV常见图像处理技术

图像处理技术是计算机视觉项目的核心,通常是计算机视觉项目中的关键工具,可以使用它们来完成各种计算机视觉任务。因此,如果要构建计算机视觉项目,就需要对图像处理有足够的了解。在本文中,将介绍计算机视觉项目中常见的图像处理技术,主要包括图像的几何变换和图像滤波等。

盼小辉丶的博客 3万+

[Python图像处理] 三十六.OpenCV图像几何变换万字详解(平移缩放旋转、镜像仿射透视)

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。前面一篇文章介绍了OpenCV图像处理入门知识、算数逻辑运算图像融合。这篇文章将介绍图像几何变换,包括:图像平移变换、图像缩放变换、图像旋转变换、图像镜像变换、图像仿射变换和图像透视变换,万字长文整理,希望对您有所帮助。

杨秀璋的专栏 9370

OpenCV-Python图像处理仿射变换详解及案例

本节介绍了仿射变换的概念、类型、基本仿射变换矩阵、OpenCV-Python仿射变换相关的主要函数及语法说明,并提供了两种不同方式实现的图像旋转和任选三个点将圈定子图放大的示例。通过阅读相关内容可以有助于大家理解仿射变换的概念和仿射变换的OpenCV-Python实现方法。

老猿Python 1万+

[Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正

该系列文章是讲解Python OpenCV图像处理知识,主要讲解图像入门、OpenCV基础用法。前面的第六篇文章讲解了图像缩放、图像旋转、图像翻转和图像平移的几何变换,本篇文章主要讲解图像仿射变换和图像透视变换,通过Python调用OpenCV函数实。基础性知识希望对您有所帮助。

杨秀璋的专栏 1万+

《数字图像处理-OpenCV/Python》第6章:图像的几何变换

几何变换分为等距变换、相似变换、仿射变换和投影变换,是指对图像的位置、大小、形状和投影进行变换,将图像从原始平面投影到新的视平面。OpenCV图像的几何变换,本质上是将一个多维数组通过映射关系转换为另一个多维数组。

youcans的博客 4260

[Python从零到壹] 三十九.图像处理基础篇之图像几何变换(镜像仿射透视)

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍。上一篇文章介绍图像几何变换,包括图像平移、图像缩放和图像旋转。这篇文章将继续讲解图像几何变换,包括图像镜像、图像仿射和图像透视。希望文章对您有所帮助,如果有不足之处,还请海涵。

杨秀璋的专栏 1万+

opencv-python图像几何变换(缩放、平移、旋转、仿射变换、透视变换)

仿射变换 仿射变换是一种二维坐标到二维坐标之间的线性变换,它保持了二维图形的“平直性”(直线经过变换之后依然是直线)和“平行性”(二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。任意的仿射变换都能表示为乘以一个矩阵(线性变换),再加上一个向量 (平移) 的形式。 opencv显示仿射变换前后的图像 import cv2 import numpy as np...

qq_41979513的博客 4351

Python 计算机视觉(五)—— OpenCV 进行图像几何变换

这篇文章中简单总结了图像几何变换中的平移变换、旋转变换、缩放变换、镜像变换以及仿射变换这五个部分,并介绍了它们的原理;其中参考的一些文章已经添加了链接,如果想进行更加全面的学习可以点进去进行查看。

qq_52309640的博客 1万+

OpenCV-python增强数据集(几何变换原理

目录一、几何变换原理1.扩展缩放2.平移3.旋转4.仿射变换5.透视变换二、数据增强1.批量增强数据2.批量修改文件名 一、几何变换原理 参考:OpenCV-Python中文教程 1.扩展缩放 只是改变图像的尺寸大小,cv2.resize()可以实现这个功能。在缩放时推荐cv2.INTER_AREA,在拓展时推荐cv2.INTER_CUBIC(慢)和cv2.INTER_LINEAR。默认情况下...

cungudafa的博客 4712

图像处理:平移,缩放,旋转等】仿射变换过程仿射变换矩阵

遇到了一些情况需要将图片旋转一定角度使其相对来说是符合人类认知的形式【就是歪图转正】于是接触了处理图片的经典方式——仿射变换 定义:仿射变换的功能是从二维坐标到二维坐标之间的线性变换,且保持二维图形的“平直性”和“平行性”。仿射变换可以通过一系列的原子变换的复合来实现,包括平移,缩放,翻转,旋转和剪切。 1)图像的几何变换 对图像进行放大、缩小、旋转等操作,会改变原图中各区域的空间关系,这类操...

kuronekonano的博客 8970

(03)python-opencv图像处理——图像的几何变换

你将会学到将不同的几何变换应用于图像,如平移、旋转、仿射变换等。图像的几何变换图像处理和图像分析的基础内容之一。图像几何变换又称为图像空间变换, 它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。几何变换的特点是改变图像像素的空间位置,而不改变像素灰度值。图像的几何变换主要包括:位置变换:图像的平移、镜像、旋转形状变换:图像的缩放仿射变换。

zyz博客 1595
上一篇: 【opencv+python】图像处理之一、颜色空间RGB,Gray与HSV
下一篇: 【opencv+python】图像处理之二、几何变换(仿射与投影)的应用
a352611
博客等级 码龄14年 80粉丝 30原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值