用pyqt5制作图像处理界面(2)——图像的几何变换

二维图像变换的矩阵表示

齐次坐标:
齐次坐标就是一个n维矢量的(n+1)维矢量表示
例如:二维坐标点P(x,y)的齐次坐标为:(Hx,Hy,H)。
二维坐标与齐次坐标是一对多的关系。通常都采用规格化的齐次坐标,即取H=1。(x,y)的规格化齐次坐标为(x,y,1)。
齐次坐标的几何意义:可理解为在三维空间上第三维为常数的一平面上的二维向量。
齐次坐标的作用:将各种变换用阶数统一的矩阵来标书。提供了用矩阵运算实现图形变换,或者把二维,三维甚至高维空间上的一个点从另一个坐标系变换到另一个坐标系的有效方法。

图像的平移变换

设图像的高度为H,宽度为W,如下所示
在这里插入图片描述
每一个像素都有自己的坐标。我们假设原来像素的位置坐标为( x 0 , y 0 x_0,y_0 x0y0),经过平移量( △ x , △ y △x,△y xy)后,坐标变为( x 1 , y 1 x_1,y_1 x1y1)。
在这里插入图片描述
平移操作可以用数学表达为:
x 1 = x 0 + △ x y 1 = y 0 + △ y x_1 = x_0 + △x \\ y_1 = y_0 + △y x1=x0+xy1=y0+y
用矩阵表示为:
在这里插入图片描述
矩阵:
在这里插入图片描述
称为平移变换矩阵(因子),△x和△y为平移量。
在这里插入图片描述

图像的镜像变换

图像的镜像变换分为水平镜像和垂直镜像,首先说明一下,无论是水平镜像还是垂直镜像,镜像后高度和宽度都不变。
水平镜像操作:以原图像的垂直中轴线为中心,将图像分为左右两部分进行对称变换。示意图如下所示:
在这里插入图片描述
水平镜像中,原图中的( x 0 , y 0 x_0,y_0 x0,y0)经过水平镜像后,坐标变成了( x 0 , W − y 0 x_0,W-y_0 x0Wy0)
数学公式表达:
x 1 = x 0 y 1 = w − y 0 x_1 = x_0 \\ y_1 = w-y_0 x1=x0y1=wy0
写成矩阵:
在这里插入图片描述
水平镜像变换矩阵(因子)为:
在这里插入图片描述
垂直镜像类似于水平镜像,其垂直镜像变换矩阵(因子):
在这里插入图片描述
在这里插入图片描述

图像的转置变换

图像的转置就是将图像像素的x坐标和y坐标互换。这样将改变图像的高度和宽度,转置后图像的高度和宽度也将互换。
数学公式表示:
x 1 = y 0 y 1 = x 0 x_1=y_0\\y_1= x_0 x1=y0y1=x0
矩阵表示:
在这里插入图片描述
在这里插入图片描述

图像的旋转变换

一般情况下,旋转操作会有一个旋转中心,这个旋转中心一般为图像的中心,旋转之后图像的大小一般会发生改变。图像像素原来的坐标为(x0,y0),(顺时针)选择Θ角度后得到(x1,y1),用数学公式表达如下所示:
在这里插入图片描述

图像的缩放

图像的缩放指的是将图像的尺寸变小或变大的过程,也就是减少或增加原图像数据的像素个数。简单来说,就是通过增加或删除像素点来改变图像的尺寸。当图像缩小时,图像会变得更加清晰,当图像放大时,图像的质量会有所下降,因此需要进行插值处理,基础的内插法有最近邻内插法,双线性内插法。

以图像放大为例,对数字图像f(x,y)放大一倍,其数学表达式为x’=2x,y’=2y(其中,(x’,y’)表示(x,y)变化后所对应的坐标),如图1所示。

在这里插入图片描述现在将图像缩放写成一般的数学表达式:
在这里插入图片描述
再写成矩阵形式:
在这里插入图片描述
其中缩放矩阵为
在这里插入图片描述
图像放大一倍后出现了许多“空洞”(图中白色格子部分)。对此我们需要采取措施,常用的手段就是“插值法”(又称“内插法”),在图像处理中,插值法简单的说就是利用f(a,b)周围已知的像素点的值通过某种法则来计算出f(a,b)的近似值。
最近邻插值
在这里插入图片描述双线性插值
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值