Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-24
年龄: 37
帖子: 3
声望力: 0 ![]() |
![]()
弄毕设。。。求助:
如何改变程序中中值滤波的窗口大小?谁能告诉我。medfilt2应该只是3x3的窗口,那5x5,7x7等等呢?圆形窗口怎么定义?谢谢啊。。。各位。。。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-11-26
年龄: 41
帖子: 4
声望力: 0 ![]() |
![]()
事实上MATLAB中的中值滤波若直接用medfilt2函数。默认的就是3x3的窗口,如果用5x5,可直接设定参数例如:
I=imread('9.bmp'); A=rgb2gray(I); IMG_MED=medfilt2(A,[5 5]); figure,imshow(IMG_MED); 是可以的,但是你的滤波效果和窗口的大小有关,具体问题具体分析。 另外建议楼主,如果是中值滤波的话,最好还是自己写程序,其实不难。 ![]() |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-03-24
年龄: 37
帖子: 3
声望力: 0 ![]() |
![]()
您好,请问圆形窗口如何定义呢?
|
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26 ![]() |
![]()
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”,再次登陆时亦便于查看回答是否真的帮到你了。 个人观点 仅供参考 多多交流 相互学习 |
![]() |
![]() |
![]() |
#5 |
高级会员
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21 ![]() |
![]()
LS理论模块化太强了点儿,呵呵,实际上这种模板操作,包括什么运动估计等所用搜索模板,滤波用模板以及识别匹配模板,都可以根据自己的实际情况编写个模板函数来实现,模板函数其实就是实现某些点与操作对象的乘累加操作,或类似操作。这些点是方的、圆的,都可以自己决定。
__________________
工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755 |
![]() |
![]() |