我有一个与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,[]);
答案 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中“适当的空间域过滤器”的概念。