之前,我在学习图像处理的时候,会经常用到Gaussian blur,也就是二维高斯低通滤波。当时用的都是Matlab中,现成的图像处理库。只需要输入sigma和kernel size这些参数就行了,完全不需要考虑高斯核中的每个点长啥样。虽然教科书里面也会有一些配图,例如:
直到后来,我学习高斯图像金字塔的时候发现,在别人的代码里面,他在生成二维高斯核的时候,并不是直接写出来的。而是,不论什么尺寸的2D高斯核,都是先生成一个对应长度的一维高斯核。然后再用这个一维的高斯核(列向量),乘以他自己的转置(行向量),生成我们期望的2D高斯核。就像这样:
当时我就觉得惊为天人,居然还有这种操作。再后来,我就把他这种做法,当作一种技巧来用,但一直都非常好奇,为什么可以这样?为什么别的二维滤波器不能这样合成?为什么只有二维高斯核可以这样合成?除了二维高斯核以外,还有没有别的二维滤波器可以用这种方法来实现?在后来的工作当中,我也因为这个问题咨询过许多高人,有人试图回答过,但都没有一个让我满意的答案,直到。。。后来,我学习了线性代数,线性代数的课本回答了我这个长久以来的疑惑。
因为:2D高斯核的秩rank为1!
所以,他可以表达成一个列向量乘以一个行向量的形式。也就是说,任何一个秩等于1的矩阵都可以表示成如下形式(其中,u,v都是列向量,又因为u,v的维数可以不同,所以,A不一定是方阵):
例如:u,v维数相同的情形,得到的是一个3x3的方阵。
u,v维数不相同的情形,得到的是一个3x2的长方形矩阵
同时,我们还应该看到,一个列向量与一个行向量的乘积,既可以看成是以列向量为权重对行向量进行操作,也可以看成是以行向量为权重对列向量进行操作。只要一维向量是左右对称的,那么他与他的转置所生成的二维矩阵也是上下左右都对称的。
下面是我自己的一些笔记:
(全文完)
作者 --- 松下J27
古诗词赏析:
《木兰诗》---南北朝乐府诗集
唧唧复唧唧,木兰当户织。不闻机杼声,唯闻女叹息。(唯 一作:惟)
问女何所思,问女何所忆。女亦无所思,女亦无所忆。昨夜见军帖,可汗大点兵,军书十二卷,卷卷有爷名。阿爷无大儿,木兰无长兄,愿为市鞍马,从此替爷征。
东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。旦辞爷娘去,暮宿黄河边,不闻爷娘唤女声,但闻黄河流水鸣溅溅。旦辞黄河去,暮至黑山头,不闻爷娘唤女声,但闻燕山胡骑鸣啾啾。
万里赴戎机,关山度若飞。朔气传金柝,寒光照铁衣。将军百战死,壮士十年归。
归来见天子,天子坐明堂。策勋十二转,赏赐百千强。可汗问所欲,木兰不用尚书郎,愿驰千里足,送儿还故乡。
爷娘闻女来,出郭相扶将;阿姊闻妹来,当户理红妆;小弟闻姊来,磨刀霍霍向猪羊。开我东阁门,坐我西阁床。脱我战时袍,著我旧时裳。当窗理云鬓,对镜帖花黄。出门看火伴,火伴皆惊忙:同行十二年,不知木兰是女郎。
雄兔脚扑朔,雌兔眼迷离;双兔傍地走,安能辨我是雄雌?
鸣谢(参考文献):
1,线性代数及其应用,侯自新,南开大学出版社,1990.
(配图与本文无关)
版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27