您的位置:首页 > 编程语言 > MATLAB

用matlab代码分析不同尺寸的卷积核对图像的影响

2018-03-04 11:17 337 查看

结论

为了方便操作,我们直接使用灰度图像,然后在上面添加高斯噪声,使用不同大小的高斯模糊核对噪声图像进行处理,观察处理之后的图像的差别。

通过实验结果我们会发现,卷积核越大,图像就会变的越平滑,图像中的噪声显得越不明显。并且卷积核越大,图像的对比度就变得越不明显。从梯度图上观察,原图的梯度线条窄,给人以锐利的感觉。而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 = im
a7f7
filter(img, hx, 'replicate'); %水平梯度

% 梯度图
gradmag = sqrt(Ix.^2 + Iy.^2);


运行结果











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: