【求助】求教一个关于 中值滤波 处理图像的问题
I=imread('BlueLED.jpg');
imshow(I);
title('Original Picture');
J=imnoise(I,'salt & pepper',0.04); %***add salt and pepper noise
title('added salt noise');
figure
imshow(J);
K=medfilt2(J,[4,4]) %By median filtering
figure
imshow(K);
title('by median filtering');
这个程序代码老是给我报错:
??? Error using ==> iptcheckinput
Function ORDFILT2 expected its first input, A, to be two-dimensional.
Error in ==> ordfilt2>ParseInputs at 135
iptcheckinput(A, {'numeric','logical'}, {'2d','real'}, mfilename, 'A', 1);
Error in ==> ordfilt2 at 51
[A,order,domain,s,padopt,msg] = ParseInputs(varargin{:});
Error in ==> medfilt2 at 57
b = ordfilt2(a, order1, domain, padopt);
Error in ==> median_filtering_2 at 8
K=medfilt2(J,[4,4]) %By median filtering
哪位大侠帮我分析分析 是啥原因?
不胜感激。
[解决办法]
??? Error using ==> iptcheckinput
Function ORDFILT2 expected its first input, A, to be two-dimensional.
..
Error in ==> median_filtering_2 at 8
K=medfilt2(J,[4,4]) %By median filtering
注意看第一个报错和最后一个
第一个是说问题: 第一个输入必须是二维矩阵(灰度图)
最后一个是说,具体哪句调用产生的问题,medfilt2你想做中值滤波,J是加噪后的图片(注意,imread后是三维的彩色图),你调用之后,J作为参数传递给后面的函数,出错的.
解决办法:
在灰度图上实验,步骤
I = imread('test.jpg'); % 彩色I = rgb2gray(I); % 灰度%下面继续你的其他操作,就不会出问题了% ...