以下MATLAB脚本的答案正确吗?

时间:2018-11-12 08:29:43

标签: matlab image-processing matlab-figure

我有一个与matlab image processing toolbox有关的任务。任务如下:

enter image description here

我对这些步骤的解决方案是:

I = imread('Ball.jpg');

I1 = imnoise(I, 'salt&pepper', 0.2);

G = rgb2gray(I1);

C = fspecial('Laplacian',h);

imwrite(C, 'clean.jpg');

subplot(1,2,1);
imshow(I1,[]);

subplot(1,2,2);
imshow(C,[]);

2 个答案:

答案 0 :(得分:1)

我认为您犯了很多错误。

首先,您读取的图像已经很吵,因为它没有具体说“ 给图像添加噪音”。这使第二步imnoise变得多余了。

第二,使用fspecial创建过滤器。在这种情况下,其类型是给定alpha Laplacian(介于0和1之间)的alpha过滤器。仅此一项就无法过滤您的图像。您必须使用函数imfilter才能处理图像。

I = imread('Ball.jpg');

G = rgb2gray(I);

h = fspecial('Laplacian',0.7); % 0.1 is the alpha, try out which one suits your case the most

C = imfilter(G,h);

imwrite(C, 'clean.jpg');

subplot(1,2,1);
imshow(I,[]);

subplot(1,2,2);
imshow(C,[]);

请注意,Laplacian过滤器不一定最适合您。您可以使用MatLab documentation中列出的许多过滤器类型。考虑使用高斯滤波器。

答案 1 :(得分:0)

您的解决方案是不完整的,例如,您没有对嘈杂的图片应用滤镜。这是一个可能有效的示例:

lseek

根据结果,您可以验证问题III中“适当的空间域过滤器”的概念。