结论
为了方便操作,我们直接使用灰度图像,然后在上面添加高斯噪声,使用不同大小的高斯模糊核对噪声图像进行处理,观察处理之后的图像的差别。
通过实验结果我们会发现,卷积核越大,图像就会变的越平滑,图像中的噪声显得越不明显。并且卷积核越大,图像的对比度就变得越不明显。从梯度图上观察,原图的梯度线条窄,给人以锐利的感觉。而7×7的梯度图线条宽,给人以模糊的感觉。
matlab代码
close all;
clear;
clc;
I = imread('images/lena.jpg');
I = rgb2gray(I);
figure;imshow(I);title('原始图像'); 、
% 添加噪声
I1 = imnoise(I,'gaussian');
figure;imshow(I1);title('高斯白噪');
% 求噪声图像的梯度图
grad = gradimg(I1);
imshow(grad,[]);title('噪声梯度图');
%用5*5邻域模板对加噪图像(高斯白噪)
H1 = fspecial('gaussian',3,10);
J2 = imfilter(I1,H1);
figure;imshow(J2);title('3*3模板');
%用3*5中值模板对加噪图像(高斯白噪)
H2 = fspecial('gaussian',5,10);
J3 = imfilter(I1,H2);
figure;imshow(J3);title('5*5模板');
H3 = fspecial('gaussian',7,10);
J4 = imfilter(I1,H3);
figure;imshow(J4);title('7*7');
% 求梯度图
grad4 = gradimg(J4);
figure;imshow(grad4,[]);title('7*7梯度');
生成梯度图代码
function gradmag = gradimg(img)
% 转到0-1之间
img = mat2gray(img);
% sobel梯度算子,fspecial生成的是垂直梯度算子
hy = fspecial('sobel');
hx = hy';
Iy = imfilter(img, hy, 'replicate'); %垂直梯度
Ix = imfilter(img, hx, 'replicate'); %水平梯度
% 梯度图
gradmag = sqrt(Ix.^2 + Iy.^2);
运行结果