当前位置:编程学习 > Matlab >>

求MATLAB大神!!! 看一下下面这个代码 怎么调试成功 加QQ 175442265 有酬谢!~

function f = adpmedian(g, Smax) %ADPMEDIAN Perform adaptive median filtering. % F = ADPMEDIAN(G, SMAX) performs adaptive median filtering of % image G. The median filter starts at size 3-by-3 and iterates up % to size SMAX-by-SMAX. SMAX must be an odd integer greater than 1. % Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins % Digital Image Processing Using MATLAB, Prentice-Hall, 2004 % $Revision: 1.5 $ $Date: 2003/11/21 14:19:05 $ % SMAX must be an odd, positive integer greater than 1. if (Smax <= 1) | (Smax/2 == round(Smax/2)) | (Smax ~= round(Smax)) error('SMAX must be an odd integer > 1.') end [M, N] = size(g); % Initial setup. f = g; f(:) = 0; alreadyProcessed = false(size(g)); % Begin filtering. for k = 3:2:Smax zmin = ordfilt2(g, 1, ones(k, k), 'symmetric'); zmax = ordfilt2(g, k * k, ones(k, k), 'symmetric'); zmed = medfilt2(g, [k k], 'symmetric'); processUsingLevelB = (zmed > zmin) & (zmax > zmed) & ... ~alreadyProcessed; zB = (g > zmin) & (zmax > g); outputZxy = processUsingLevelB & zB; outputZmed = processUsingLevelB & ~zB; f(outputZxy) = g(outputZxy); f(outputZmed) = zmed(outputZmed); alreadyProcessed = alreadyProcessed | processUsingLevelB; if all(alreadyProcessed(:)) break; end end % Output zmed for any remaining unprocessed pixels. Note that this % zmed was computed using a window of size Smax-by-Smax, which is % the final value of k in the loop. f(~alreadyProcessed) = zmed(~alreadyProcessed);
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,