二维中值滤波我还是没弄清怎么算出来的 尤其是3*3 5*5那些窗口是怎么确定的,下边的例子能够详细给我讲解讲解吗????
>> x=[1 1 1;2 2 2;3 3 3]
x =
1 1 1
2 2 2
3 3 3
>> e=medfilt2(x,[3 3])
e =
0 1 0
1 2 1
0 2 0
请问e是怎么算出来啊?窗口3*3 和5*5怎么定呢
Matlab进行二维中值滤波的问题
答案:2 悬赏:70
解决时间 2021-02-18 05:04
- 提问者网友:喜遇你
- 2021-02-17 19:14
最佳答案
- 二级知识专家网友:颜值超标
- 2021-02-17 20:17
x= 1 1 1
2 2 2
3 3 3
扩展
0 0 0 0 0
0 1 1 1 0
0 2 2 2 0
0 3 3 3 0
0 0 0 0 0
e的第一行、第一列,以原来矩阵的第一个数为中心,3x3矩阵作为统计,也就是
0 0 0
0 1 1
0 2 2
然后对这9个数排序,得到 0 0 0 0 0 1 1 2 2,取牌子中间的数,也就是第5个数0
所以e(1,1)=0
对于e(1,2)第一行,第二列
以原来矩阵(1,2)为中心,取9个数
0 0 0
1 1 1
2 2 2
排序 0 0 0 1 1 1 2 2 2,中间的数,第5个数是1
所以e(1,2)=1
依次类推
2 2 2
3 3 3
扩展
0 0 0 0 0
0 1 1 1 0
0 2 2 2 0
0 3 3 3 0
0 0 0 0 0
e的第一行、第一列,以原来矩阵的第一个数为中心,3x3矩阵作为统计,也就是
0 0 0
0 1 1
0 2 2
然后对这9个数排序,得到 0 0 0 0 0 1 1 2 2,取牌子中间的数,也就是第5个数0
所以e(1,1)=0
对于e(1,2)第一行,第二列
以原来矩阵(1,2)为中心,取9个数
0 0 0
1 1 1
2 2 2
排序 0 0 0 1 1 1 2 2 2,中间的数,第5个数是1
所以e(1,2)=1
依次类推
全部回答
- 1楼网友:孤伤未赏
- 2021-02-17 20:44
中值滤波是将每一点的值设置为该点某邻域窗口内的所有点的中值。这里的n就是领域的大小。
当n为偶数的时候,第k个点的滤波后的值是x(k-n/2)~ x(k+(n/2)-1)的中位数
当n为奇数的时候,第k个点的滤波后的值是 x(k-(n-1)/2)~x(k+(n-1)/2)的中位数
至于n该取多少取决于你希望滤波的程度,n越大,滤波后的结果越平滑,原序列的细节就越少。matlab中n的默认值是3
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯