本篇文章介绍图像的几何变换;
对于几何变换,需要有线性代数的技术;请大家自己补充;
介绍:几何变换、镜像变换、图像转置、图像缩放、图像旋转;
如下图,可以实现图像各像素点以坐标原点的比例缩放、反射、旋转等各种变换,但是不能实现图像的平移以及绕任意一点的比例缩放、反射、旋转等变换;
对于平移,我们可以用下面公式表达:
先提出一个问题???
有没有一个通用表达,来实现几何变换???
没有错,我们想到了齐次坐标(齐次坐标_百度百科);采用齐次坐标就可以统一实现各种几何变换;
下面我们介绍常用的几何变换:
平移变换、缩放变换、旋转变换、水平镜像、垂直镜像、复合变换
这时候我们就要想着编程思路了,带着这些问题,我们一起再下一篇文章把程序实现:
对于平移来说,是数据平移,但是只是平移的话,会不会丢数据???
对于缩放,缩小是,数据量变小,是随便减少一些数据嘛???;放大是数据量增加,怎么增加,增加的数据是随便增加吗???
镜像变换:
镜像可以用如下公式表达
旋转变换:
对于旋转变换要注意两点:
1、旋转后的宽和高可能会变,旋转360不会变,但是在0到360之间,旋转后的图像宽和高会改变;
2、通过观察旋转矩阵,有sin和cos,这样计算出来的像素点是小数,对于旋转后的的图像,会出现空白点,对于这些空白点,就要进行插值处理了;
常见的插值有最邻近插值、双线性插值、双立方插值、lanczos插值、方向插值、example-based插值,插值算法,到时候写出来了会放在网上跟大家见面;
复合变换:
复合变换(级联变换)就是前面所说的那些基本的变换连乘得来的;
几何变换理论讲解就到这了、下一篇我们介绍几何变换的编程;
有什么不对的,请大家指出;欢迎点击关注,一起学习,一起成长;