登录论坛

查看完整版本 : [MATLAB图像处理] 求助——如何改变程序中中值滤波的窗口大小


什么睿
2009-04-23, 10:44
弄毕设。。。求助:
如何改变程序中中值滤波的窗口大小?谁能告诉我。medfilt2应该只是3x3的窗口,那5x5,7x7等等呢?圆形窗口怎么定义?谢谢啊。。。各位。。。

imyota
2009-04-27, 22:59
事实上MATLAB中的中值滤波若直接用medfilt2函数。默认的就是3x3的窗口,如果用5x5,可直接设定参数例如:
I=imread('9.bmp');
A=rgb2gray(I);
IMG_MED=medfilt2(A,[5 5]);
figure,imshow(IMG_MED);
是可以的,但是你的滤波效果和窗口的大小有关,具体问题具体分析。
另外建议楼主,如果是中值滤波的话,最好还是自己写程序,其实不难。:)

什么睿
2009-05-14, 09:43
您好,请问圆形窗口如何定义呢?

silas_xue
2009-05-14, 13:36
lz 圆形窗口 即以你的所在像像素点为圆心 寻找indice在某一半径内的值
由于是数字图像 不可能做到完全的圆处理 近似搜索
希望可以对你有些帮助

pseudo:
... % initial process, imread,
for i,j %denote p(i,j) as the current
for beta %beta as the index searching angle
loc = find(p(i+floor[k*cos(beta)+0.5],i+floor[k*sin(beta)+0.5]))
mean(loc) % fitering: two ways available: p(i,j) anticipation or p(i,j) un-anticipation
p(i,j) = mean (loc) % current pixel updated
end for
end for
...

PS: No cosideration of boundary and probable value overflowing.

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
个人观点 仅供参考 多多交流 相互学习

yhcode
2009-05-14, 19:14
LS理论模块化太强了点儿,呵呵,实际上这种模板操作,包括什么运动估计等所用搜索模板,滤波用模板以及识别匹配模板,都可以根据自己的实际情况编写个模板函数来实现,模板函数其实就是实现某些点与操作对象的乘累加操作,或类似操作。这些点是方的、圆的,都可以自己决定。