镜像矩阵(Reflection)

        镜像(反射)矩阵是n维空间中的沿n-1维平面的一种矩阵变换,常见的应用场景是在2维空间图像处理、3维空间物体场景变换。先直观看看镜像变换的效果:

                                                 镜像矩阵(Reflection)

        直观的感受了镜像变换的效果之后,接下来我们看看这个变换的数学表达式是什么样的。首先n维度空间的镜像变换是基于某个n-1维度平面(对于2维度就是某条直线)来说的,线性代数的知识知道n维空间的n-1维平面存在法向量,假设镜像矩阵(Reflection)是要做镜像平面的单位法向量,单位法向量||u||=1,定义镜像矩阵镜像矩阵(Reflection)

        1. Q是对称和标准正交的,镜像矩阵(Reflection) 镜像矩阵(Reflection)镜像矩阵(Reflection) Q是对称的。镜像矩阵(Reflection)镜像矩阵(Reflection)镜像矩阵(Reflection)Q是标准正交的。如果对矩阵运算背后的原理不太熟悉,我们也可以将Q展开:

        镜像矩阵(Reflection)

        由Q的矩阵展开形式,很明显看到镜像矩阵(Reflection),所以Q是对称的。标准正交:镜像矩阵(Reflection)是Q的两列,由标准正交的定义,需要满足如下条件:

        镜像矩阵(Reflection)

        镜像矩阵(Reflection)

                镜像矩阵(Reflection)

                镜像矩阵(Reflection)

                镜像矩阵(Reflection)

         镜像矩阵(Reflection)

                      镜像矩阵(Reflection)

                      镜像矩阵(Reflection)

         2.镜像矩阵(Reflection),这条性质反应了镜像的特点,镜像两次等于原空间。

        上面是镜像矩阵的定义和它的一些性质和推导,那么我们再做一点深层次的思考:为什么镜像的表达会是一个矩阵变换,如果我做旋转是不是也是一个矩阵变换?首先,问题2的答案:YES,2维空间的旋转的变换矩阵是:镜像矩阵(Reflection)

        对于问题1,矩阵变换的本质可以理解成坐标系的变换,对于镜像和旋转我们都是对原坐标系中的向量(坐标系中的点可以表示成原点指向该点的向量)用新的坐标系中的基进行了表示。比如二维直角坐标系x0y的坐标基向量是(1,0)和(0,1),如果用矩阵表示:镜像矩阵(Reflection),基向量就是矩阵的列向量,(1,1)点这个坐标系下的坐标(x,y)由方程组镜像矩阵(Reflection)求得(x,y)=(1,1)因为在原坐标系下,假设我们对(1,1)点做沿x轴做镜像,这里的镜像很简单,x轴和原坐标系相同,y轴与原坐标系反号,所以镜像之后新的坐标系基向量是(1,0)和(0,-1)(如果你通过上面的镜像公式可以求得同样的答案,u=(0,1)),新的坐标系的矩阵表示镜像矩阵(Reflection),原坐标系下(1,1)点在新坐标系下的坐标有方程组镜像矩阵(Reflection)求得(x,y)=(1,-1),和我们直观认知一样:

                                                     镜像矩阵(Reflection)

        最后我们说说2维度空间和3维空间的镜像矩阵的表达式,首先是2维空间,对于2-D空间的某个条直线做镜像,假设该直线的单位法向量u(x,y),由镜像矩阵(Reflection)计算得到2-D空间的镜像矩阵:

        镜像矩阵(Reflection)

        对于3-D空间的某平面做镜像:

        镜像矩阵(Reflection)