CV预备(一):|CV预备(一): conv2, filter2, imfilter的差别
目录
前言
- 前言
- filter2
- 实操
- conv2
- imfilter
- 最后
最近开始准备深入学习一下计算机视觉(CV)方面的内容, 这里会更新几期基础知识, 主要是Matlab和Python方面的. 这次的就是三个Matlab的函数filter2, conv2, imfilter.filter2
filter2是相关滤波函数, 假设输入图像I大小为M1 X N1,相关核f大小为M2 X N2.
J = filter2 (f, I, shape)
- f: 相关核, 即滤波掩模
- I: 输入图像
- J: 输出图像
- shape: 可选, 其参数如下:
参数 | 描述 |
---|---|
same(默认值) | 返回与I同样尺寸滤波后的图像, M1 X N1 |
full | 返回全部二维滤波结果, (M1 + M2 - 1) X (N1 + N2 - 1) |
valid | 不考虑边界补零, 即只要有边界补出的零参与运算的都舍去, (M1 - M2 + 1) X (N1 - N2 + 1) |
这里实操一下, 首先是'same'
I = [10 10 10 10;
10 10 10 10;
10 10 10 10];
f = [1 1 1;
1 1 1;
1 1 1];
J = filter2(f, I, 'same')
输出是:
>> iFilterJ =40606040
60909060
40606040
对输入图像补零, 第一行之前和最后一行之后都补M2 -1行,第一列之前和最后一列之后都补N2 - 1列, (注意filter2和conv2不支持其他的边界补充选项, 函数内部对输入总是补零.
也就是补成如下:
0 0 00000 0
0 0 00000 0
0 0 10 10 10 10 0 0
0 0 10 10 10 10 0 0
0 0 10 10 10 10 0 0
0 0 00000 0
0 0 00000 0
文章图片
相关
所以第一个40就是相关核与红框内部分对应相乘然后结果求和所得, 也就是(0*1 + 0*1 + 0*1 + 0*1 + 10 *1 + 10 *1 + 0*1 + 10 *1 + 10 *1), 之后的就滑动相关核, 将相关核的中心位于图像矩阵的每一个元素.
'full'的话, 就是将边缘补全零的计算结果也一并输出, 所以尺寸是(M1 + M2 - 1) X (N1 + N2 - 1)
J =102030302010
204060604020
306090906030
204060604020
102030302010
文章图片
卷积
最后'valid', 就是边界补出的零参与运算的都舍去.
J =9090
conv2
和filter2最大的不同就是计算之前, 把卷积核旋转180°. 所以, 如果卷积核旋转180°和原来一样, 那么conv2和filter2的计算结果都是一样的. 所以我这里就修改一下算子. 可以很明显看到filter2的结果旋转180°就是conv2的结果.
I = [10 10 10 10;
10 10 10 10;
10 10 10 10];
f = [1 1 1;
1 1 1;
1 2 1];
J = filter2(f, I, 'same')
J = conv2(I, f, 'same')
J =50707050
7010010070
40606040J =40606040
7010010070
50707050
imfilter
J = imfilter(I, f, filtering_mode, boundary_options, size_options)
参数列表 | 选项 | 描述 |
---|---|---|
filtering_mode | ‘corr’ | 相关(默认) |
‘conv’ | 卷积 | |
boundary_options | X | 输入图像的边界通过用值X值来填充扩展其默认值为0 |
‘replicate’ | 复制外边界值 | |
‘symmetric’ | 镜像反射 | |
‘circular’ | 图像大小通过将图像看成是一个二维周期函数的一个周期来扩展 | |
size_options | ‘full’ | 输出图像的大小与被扩展图像的大小相同 |
‘same’ | 输出图像的大小与输入原始输入图像一样(默认) |
这样的话,最后J = imfilter(I, f, 'corr', 0, 'same')
与J = filter2(f, I, 'same')
是等效的.
【CV预备(一):|CV预备(一): conv2, filter2, imfilter的差别】喜欢记得点赞或者关注哦, 有意见或者建议评论区见~
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 一个人的碎碎念
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 第326天
- Y房东的后半生14
- 奔向你的城市