首页 > 解决方案 > 以下 MATLAB 脚本的答案是否正确?

问题描述

我有一个关于matlab image processing toolbox. 任务如下:

在此处输入图像描述

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

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,[]);

标签: matlabimage-processingmatlab-figure

解决方案


我认为你犯了很多错误。

首先,您阅读的图像已经很嘈杂,因为它没有具体说“为图像添加噪声”。这使您的第二步变得imnoise多余。

其次,通过使用fspecial您正在创建一个过滤器。在这种情况下,它的类型是Laplacian给定 alpha 的过滤器alpha(介于 0 和 1 之间)。仅此一项并不能过滤您的图像。您必须使用该功能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 文档中列出了许多您可以使用的过滤器类型。考虑使用高斯滤波器。


推荐阅读