错误使用medfilt2预期输入数字1,是二维的。
134(30天)
显示旧的评论
使用medfilt2我有一个错误,我不知道如何解决它。请帮助,这里我用Matlab R2020a版本。
错误从第3行。下面是运行时出现的错误的细节:
- 错误使用medfilt2。预计1号输入,一个是二维的。
- 错误medfilt2 > parse_inputs(第107行)。validateattributes (…
- 错误medfilt2(线49)。[a, mn, padopt] = parse_inputs (args {:});
我= imread (“peppers.png”);
我在= imnoise (,的盐和胡椒,0.02);
j - 1 = medfilt2 (, [3 3]);
J2 = medfilt2(在[5 5]);
图中,imshow(我);
图,imshow);
图中,imshow (j - 1);
图中,imshow (J2);
-谢谢提前
0评论
接受的答案
沃尔特·罗伯森
2021年6月6日
辣椒png是彩色图像。rgb图像三维数组。medfilt2无法处理3 d数组。
2的评论
沃尔特·罗伯森
2021年6月6日
所以你有几个选择:
- 将RGB图像转换成灰度和处理一个平面
- 过程的三个颜色飞机独立和组合的结果
- 使用medfilt3()而不是medfilt2()(这可能不是一个好主意!)
- 将RGB图像转换成其他颜色系统,如L * ab或HSV,并提取其中一个表示窗格和工作
例如,
我= imread (“peppers.png”);
HSV = rgb2hsv(我);
imshow (HSV);标题(“真正的hsv”);
H = HSV (:: 1);
H11 = H;H11 (:,: 2:3) = 1;
imshow (H11);标题(hsv,年代& V)
I11 = hsv2rgb (H11);
imshow (I11);标题(的RGB重建完整H + S & V”)
在= imnoise (H,的盐和胡椒,0.02);
j - 1 = medfilt2 (, [3 3]);
HSV1 = j - 1;HSV1 (:,: 2:3) = 1;
imshow (HSV1);标题(噪声H和完整的年代& V)
I1 = hsv2rgb (HSV1);
imshow (I1);标题(噪声的RGB重建完整H + S & V”)
imshowpair (I11 I1,“差异”)
标题(“没有噪声和噪声”)