1.任选一副图像,编写程序使用五种不同标准差的高斯模板(7x7)对图像进行卷积,解释卷积结果。
解:用fspecial指令建立高斯滤波器,改变标准差从而显示6个不同的图像。
程序如下:
aa=imread('tiger.jpg');% 读取路径中的图像
subplot(2,3,1);%把6个图像放在同一个窗口便于比较,未经处理的原图像放在第一个位置
imshow(aa);
hh=fspecial('gaussian',[7 7],0.5)%建立高斯滤波器,设置其参数
aa1=imfilter(aa,hh,'replicate');%利用滤波器对图像进行卷积
subplot(2,3,2); %该标准差下对图像进行卷积的结果显示在第二个位置
imshow(aa1);
h=fspecial('gaussian',[7 7],1)%建立高斯滤波器,增大标准差的值
aa2=imfilter(aa,hh,'replicate');
subplot(2,3,3); %该标准差下对图像进行卷积的结果显示在第三个位置
imshow(aa2);
hh=fspecial('gaussian',[7 7],10);%不断增大标准差的值,看图像效果
aa3=imfilter(aa,hh,'replicate');
subplot(2,3,4); %该标准差下对图像进行卷积的结果显示在第四个位置
imshow(aa3);
hh=fspecial('gaussian',[7 7],100); %不断增大标准差的值,看图像效果
aa4=imfilter(aa,hh,'replicate');
subplot(2,3,5); %该标准差下对图像进行卷积的结果显示在第五个位置
imshow(aa4);
hh=fspecial('gaussian',[7 7],1000); %不断增大标准差的值,看图像效果
aa5=imfilter(aa,hh,'replicate');
subplot(2,3,6); %该标准差下对图像进行卷积的结果显示在第六个位置
imshow(aa5);
运行结果如果所示:                                            图1
结果分析:
用高斯模板对图像进行卷积,标准差越小,则平滑效果越差,标准差非常大时,则加权平均值趋向邻域一致性。
如图1所示,标准差依次增大,噪声越来越小,从而画面越来越模糊。
2.编写程序生成一副图像的高斯金字塔
字符串转数组方法js
解答:
图像金字塔是图像表示的集合,金字塔中每层的宽度和高度分别是上一层尺寸的一半,一层层叠放够成金字塔。高斯金字塔中每层使用对称的高斯核函数进行高斯平滑化,重新采样得到下一层。
    在对图像进行高斯平滑化之前,先使用rgb2gray函数对图像进行处理,将真彩图像转化为灰度图像,这样,生成的高斯金字塔中每层只有一幅图像。
程序如下:
clear,clc;
aa=imread('tiger.jpg');%读取图像存放在aa中
bb=rgb2gray(aa); %将彩图像转化为灰度图像
imshow(bb); %显示未经处理的图像
h=fspecial('gaussian',[7 7],10); %建立高斯滤波器
for i=1:1:5 %高斯金字塔共有5层
    [m,n]=size(bb);
    bb=imresize(bb,[m/2,m/2]); %每层的图像的尺寸为上一层图像尺寸的一半
    bb=imfilter(bb,h,'replicate'); %对每层的图像使用建立的高斯滤波器进行高斯平滑化
    figure,imshow(bb); %重新建立一张图像,显示每层经过处理的图像的效果
end
 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。