由于笔者没有学过正规的图像处理,只是自己在徒手撸控件时的一些思考,难免会有疏漏,敬请谅解。
最开始,我做一个图像变换的时候,方法是对一个个点进行单独的计算,以确定其变换的方法以及代码,毫无疑问,这是很愚蠢的做法。费时费力还不能重用,后来我就在想,能不能有一个方法能够一劳永逸的实现图像的变换呢,答案肯定是有的。
计算机的劳作其实可以看做是一种模仿。比如,我们如果想要制作一个图片不断靠近观察者的感觉,那么,我们需要观察一下,现实中这种现象是怎么来的。
现实中的运动都是相对的,同理变换也是相对的,一个物体在我们眼中的变换就是一个点在不同坐标系下的表达。
假如将我们现在的位置称为(0,0,0),则以我们接收到的图像,是以(0,0,0)为坐标原点构建的。此时,如若向前移动一步,则可以看成图像被从(0,0,0)坐标系下变换到(1,0,0)为坐标原点的坐标系下。
而这种变换就是我们非常熟悉的矩阵变换。以矩阵表示点阵图,用矩阵乘法表示坐标系的变换,这就是线性代数在计算机图形学中得应用。
比如,任何一个矩阵左右各乘一个可逆矩阵即可得到它的等价矩阵,任何一个可逆方阵都可以分解为有限个初等方阵的乘积,等等一系列的矩阵定理,规定了图像变化的方法,依赖于这些图像变换的方法,我们就可以制作出有效的,可重复利用的轮子。
当然具体的计算不可能有真么简单,在这里我也只是记录一下自己关于这方面的想法罢了。
还请各位斧正。
(待笔者加深对线性代数的知识后再续)
时间: 2024-10-29 00:31:00