图像处理之几何学操作

图像处理之几何学操作


仿射变换

矩阵的乘法操作其实就是对行向量或列向量进行一定的线性变换,在矩阵乘法中左边的矩阵决定结果的行而右边矩阵决定结果的列。
左边矩阵的第i行第j列是通过右边第j行的数来改变左边的第j列

在图像处理中通过仿射矩阵左乘像素的位置向量就能对图片进行变换

  • 位置向量分为代表维度(x, y, z)方向的坐标,二维平面采用非齐次坐标z轴默认为1
  • 仿射矩阵的对角元素对对应维度的坐标做缩放操作
  • 其他元素通过元素所在列对应的维度坐标去控制元素所在行所对应的维度坐标
缩放:

在这里插入图片描述

拉伸:

如下图所示缩放矩阵通过将向量按一定的方向拉伸
在这里插入图片描述

旋转:

这是二维下的旋转,三维下就是DCM矩阵
在这里插入图片描述
代码:

getRotationMatrix2D((中心点),angle, 缩放倍数)

透视变换

透视变换相当于三维空间的仿射变换,采用齐次坐标表示。
如下图所示

  • (a11, a12, a 22, a21)负责通过X, Y 轴的坐标值去改变X,Y轴的坐标值,表示着二维平面X,Y轴的线性关系,既仿射变换
  • (a31, a32)通过Z轴的坐标值去改变二维平面的坐标值,既平移操作
  • (a13, a23)通过X, Y的坐标轴去改变Z轴的坐标值,表示着二维平面与Z轴的线性关系,所以是透视变换
    在这里插入图片描述
    代码:
#pts1原图坐标,pts2目标图像坐标
M = cv2.getPersepectiveTransform(pts1, pts2)
dst = cv2.warpPerspective(img, M, (out_size))

图像插值

最近邻插值:
直接选择位置上最近的像素的值,但会有锯齿
代码:

线性插值:
根据周围的像素算平均值

双线性插值
有坐标x,y
可以得到表达式
v(x,y)表示(x,y)点的像素值
v(x, y) = ax + by + axy + d
四个未知数,取该点的四临域列出四个方程可解

双三次插值
这是双线性插值的升级版
表达式为:
v(x, y) = ax^2 + by^2 + a…
八个未知参数,去该点的八临域列出八个方程可解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值