模板:矩阵方块,其数学含义是一种卷积运算。
卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别于卷积核(权矩阵)的每个元素对应相
乘,所有乘积之和作为区域中心像素的新值。
卷积核:卷积时使用到的权用一个矩阵表示,该矩阵与使用的图像区域大小相同,其行、列都是奇数,
是一个权矩阵。
卷积示例:
3 * 3 的像素区域R与卷积核G的卷积运算:
R5(中心像素)=R1G1 + R2G2 + R3G3 + R4G4 + R5G5 + R6G6 + R7G7 + R8G8 + R9G9
2.使用模板处理图像的问题:
边界问题:当处理图像边界像素时,卷积核与图像使用区域不能匹配,卷积核的中心与边界像素点对应,
卷积运算将出现问题。
处理办法:
A. 忽略边界像素,即处理后的图像将丢掉这些像素。
B. 保留原边界像素,即copy边界像素到处理后的图像。
3.常用模板:
4.循环矩阵就是它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果
5.多项式相乘规律
经过matlab函数conv2的验证,这种方法结果是正确的。
这里给出的矩阵大小是相同的,如果大小不相同又怎么办呢?比如说:
c=[1 2;3 4;5 6],d=[7 8;1 2];c*d=?
按多项式相乘方法算了下(因为是2x3矩阵卷积2x2矩阵,卷积后矩阵大小应为(2+2-1)x(2+3-1)=3x4),这里只写出多项式系数:
(1 2)(7 8)=(7 22 16);
(1 2)(1 2)+(3 4)(7 8)=(21 52 32)+(1 4 4)=(22 56 36);
(5 6)(7 8)+(3 4)(1 2)=(3 10 8)+(35 82 48)=(38 92 56);
(5 6)(1 2)=(5 16 12);
matlab的运算结果为[7 22 16;22 56 36;38 92 56;5 16 12],一致。
方法清楚了,但是感觉还是有点乱,规律是什么呢?仔细看下,发现规律如下:
将前面一个矩阵翻转180°,然后像一般卷积那样移位相乘相加,只不过方向变成了由上往下。比如,第一个例子中a翻转后(8 1 6)在最下面,当由上往下移动时,先与b的第一行(2 3 2)重叠,于是做二项式相乘得到结果的第1行;然后继续a继续向下移动,(8 1 6)与b的第2行重叠,(3 5 7)与b的第二行重叠,于是这两项分别进行相乘,然后相加得到结果的第二行...以此类推,最后得出结果。http://blog.csdn.net/dreamer323/article/details/13630739
http://zhongcheng0519.blog.163.com/blog/static/161690688201122141335874/
http://www.360doc.com/content/11/0530/20/4539198_120561433.shtml
http://blog.csdn.net/frankyzhangc/article/details/6990782
http://www.douban.com/group/topic/5255143/
http://blog.sina.com.cn/s/blog_63af6d980100t6ut.html
http://www.360doc.com/content/11/0618/18/35748_127855587.shtml
http://blog.sina.com.cn/s/blog_4bdb170b01019asi.html
http://blog.sina.com.cn/s/blog_4bdb170b01019atv.html