wgun 发表于 2007-1-31 16:13

为什么medfilt2不能用?

I=imread('1.jpg');
J=imnoise(I,'salt & pepper',0.02);      
K=medfilt2(J);
imshow(J), imshow(K)
1.jpg是一张图片;

运行上面的程序,就出现以下错误:
??? Error using ==> images\private\checkinput>check_attributes
Function ORDFILT2 expected its first input argument, A,
to be two-dimensional.
Error in ==> images\private\checkinput at 37
check_attributes(A, attributes, function_name, variable_name, ...
Error in ==> ordfilt2>ParseInputs at 135
checkinput(A, {'numeric','logical'}, {'2d','real'}, mfilename, 'A', 1);
Error in ==> ordfilt2 at 51
= ParseInputs(varargin{:});
Error in ==> medfilt2 at 53
    b = ordfilt2(a, order, domain, padopt);
Error in ==> x at 3
K=medfilt2(J);

请问各位高手,是什么问题?

eight 发表于 2007-1-31 16:26

原帖由 wgun 于 2007-1-31 16:13 发表
I=imread('1.jpg');
J=imnoise(I,'salt & pepper',0.02);      
K=medfilt2(J);
imshow(J), imshow(K)
1.jpg是一张图片;

运行上面的程序,就出现以下错误:
??? Error using ==> images\pr ...

根据这个提示:Function ORDFILT2 expected its first input argument, A, to be two-dimensional,自己调试一下,看看你的J是否二维矩阵,我猜你的图片是一个真彩色图,因此得到的I是三维的

wgun 发表于 2007-1-31 16:42

明白了,谢谢eight

wgun 发表于 2007-1-31 16:47

原来真彩图是3维的,又学到了
页: [1]
查看完整版本: 为什么medfilt2不能用?