matlab实验报告(精品小实验)

时间:2024.4.9

报告一  直方图均衡化

一、目的

1. 改善图像的视觉,提高清晰度;

2. 增强人们感兴趣部分,到视觉效果更好的图像,以提高图像的可懂度。

二、主要内容

1.读入图像数据到内存中,并显示读入的图像;

2.实现直方图均衡化处理,显示处理前后图像的直方图;

3.显示并保存处理结果。

三、具体步骤

1. 打开Matlab编程环境。

2. 获取试验用图像:使用imread函数将图像读入Matlab,并用inshow函数显示读入的图像。

3. 获取输入图像的直方图:使用inhist函数处理图像。

4. 均衡化处理:使用histeq函数处理图像。

5. 获取均衡化后的直方图并显示图像:使用inhist和histeq函数。

6. 保存结果。

四、实验程序及结果

1、实验程序

    x=imread('f:\flower.jpg');  %使用imread函数将图像读入Matlab

    x=rgb2gray(x);                   %将彩色图像装换为灰度图像

    figure(1);

    subplot(2,2,1);

    imshow(x);                       %显示图像

    title('(a)原图像')

    subplot(2,2,2);

    imhist(x)                        %求图像直方图

    axis off;                    

    title('(b)原图像的直方图')

    x1=histeq(x);                    %对图像进行均衡化处理

    subplot(2,2,3);

    imshow(x1);

    title('(c)直方图均衡化后的图像')

    subplot(2,2,4);

    imhist(x1)                       %均衡化处理后的图像的直方图

    axis off;

title('(d)均衡化后的直方图')

2、实验结果

五、结果分析

从上面的两幅图我们可以很明显的看到,没有经过均衡化处理的原图像灰度值较为集中,背景颜色全为白色;而经过均衡化处理的图像灰度值分布近似服从均匀分布,背景颜色有了由灰到白的渐变,尤其是花朵的绿叶部分的均衡效果较为明显。

报告二  图像平滑

一、目的

去除或衰减图像中的噪声和虚假轮廓。

二、 实现方法

减少噪声的方法可以在空间域或在频率域处理,在空间域中进行时,基本方法就是求像素的平均值或中值;在频域中则运用低通滤波技术。因其算法简单且处理速度快,在此我们使用空域法。

三、操作步骤

1、选择一副图像,加入高斯白噪声;

2、分别进行4领域和8领域处理并对两种方法进行对比分析;

3、保存实验结果并给予分析。

四、实验程序及结果

1、实验程序

>> x=imread('f:\1.jpg');                    %读入图像

>> x=rgb2gray(x);                           %将彩色图像装换为灰度图像

>> subplot(1,4,1);

>> imshow(x);

>> xlabel('(a)原图像');

>> %图像加噪并显示加噪图像,高斯白噪声m=0,σ=0.005

>> x1=imnoise(x,'gaussian',0,0.05);

>> subplot(1,4,2);

>> imshow(x1);

>> xlabel('(b)加噪图像');

>> %使用4领域模板

>> h1=[0 1 0;1 1 1;0 1 0]/5;

>> x2=imfilter(x1,h1);

>> subplot(1,4,3);

>> imshow(x2);

>> xlabel('(c)4领域平均滤波');

>> %使用8领域模板

>> h2=[1 1 1;1 1 1;1 1 1]/8;

>> x3=imfilter(x1,h2);

>> subplot(1,4,4);

>> imshow(x3);

>> xlabel('(d)8领域平均滤波');^

2、实验结果

五、结果分析

从以上四幅图的比较当中我们可以看到,领域平均法对图像中的噪声进行了一定程度上的衰减,同时可以看到8领域平均法比4领域平均法滤除噪声效果要好,但同时也使图像中目标景物的轮廓或细节变的更模糊,这也正是领域平均法的一个弊端所在。

报告三 图像锐化

一、主要目的

   突出图像中的细节,增强图像的边缘、轮廓以及灰度突变部分。

二、实现方法

图像的模糊实质是因为图像受到平均或积分运算,为此对其进行逆运算如微分运算、梯度运算,就可以使图像清晰。从频谱角度来分析,图像模糊的实质是其高频分量被衰减,因而也可以通过高通滤波操作来清晰图像。

锐化滤波有两种方法:一种是空间域法,另外一种是频域中的高通滤波法。下面使用的是空域锐化方法,分别进行模板系数a=1和a=2的锐化处理,并对结果进行分析。

三、实验程序及结果

    1、实验程序

x=imread('f:\4.jpg');                          %读入第一幅图像

x=rgb2gray(x);                                 

subplot(2,3,1);

imshow(x);

a=1;                                          %a=1的锐化模板

g1=[0 -a 0;-a 1+4*a -a;0 -a 0];

f2=imfilter(x,g1,'symmetric','conv');         

subplot(2,3,2);

imshow(f2);

a=2                                            %a=2的锐化模板

g1=[0 -a 0;-a 1+4*a -a;0 -a 0];

f2=imfilter(x,g1,'symmetric','conv');

subplot(2,3,3);

imshow(f2);

x=imread('f:\3.jpg');                          %读入第二幅图像

x=rgb2gray(x);

subplot(2,3,4);

imshow(x);

xlabel('(a)原图像');

a=1                                             %a=1的锐化模板

g1=[0 -a 0;-a 1+4*a -a;0 -a 0];

f2=imfilter(x,g1,'symmetric','conv');

subplot(2,3,5);

imshow(f2);

xlabel('(b)a=1时的锐化结果');

a=2                                             %a=2的锐化模板

g1=[0 -a 0;-a 1+4*a -a;0 -a 0];

f2=imfilter(x,g1,'symmetric','conv');

subplot(2,3,6);

imshow(f2);

xlabel('(c)a=2时的锐化结果');

2、实验结果

报告四  图像的同态增晰

一、主要目的

    压缩图像灰度范围,提高图像清晰度,增加对比度。

二、实现方法

同态增晰是在频域中压缩图像的亮度分量,同时增强图像对比度的方法。其关键是可以将照明分量和反射分量分开来,从而有可能用同态滤波函数分别对它们进行压缩和提升处理,以使图像整体变清晰。

三、实验程序及结果

    1、实验程序

f1=imread('f:\5.jpg');

f1=double(rgb2gray(f1));

f_log=log(f1+1);                              %取自然对数

f2=fft2(f_log);

% 产生Butterworth高通滤波器

n=3;

D0=0.05*pi;                                   %截止频率

rh=0.8;

r1=0.3;

[m n]=size(f2);

for i=1:m

       for j=1:n

           D1(i,j)=sqrt(i^2+j^2);

           H(i,j)=r1+(rh/(1+(D0/D1(i,j))^(2*n)));

       end

end

f3=f2.*H;                                     %输入图像通过滤波器

f4=ifft2(f3);

f5=exp(real(f4))-1;                           %取指数对数

subplot(2,2,1);

imshow(uint8(f1));

subplot(2,2,2);

imshow(uint8(f5));

%第二幅图片,进行相同的处理

f1=imread('f:\flower.jpg');

f1=double(rgb2gray(f1));

f_log=log(f1+1);                               %取自然对数

f2=fft2(f_log);

% 产生Butterworth高通滤波器

n=3;

D0=0.05*pi;                                  %截止频率

rh=0.8;

r1=0.3;

[m n]=size(f2);

for i=1:m

       for j=1:n

           D1(i,j)=sqrt(i^2+j^2);

           H(i,j)=r1+(rh/(1+(D0/D1(i,j))^(2*n)));

       end

end

f3=f2.*H;                                    %输入图像通过滤波器

f4=ifft2(f3);

f5=exp(real(f4))-1;                          %取指数对数

subplot(2,2,3);

imshow(uint8(f1));

xlabel('(a)原图像');

subplot(2,2,4);

imshow(uint8(f5));

xlabel('(b)同态滤波后图像');

2、实验结果

报告五 图像恢复

一、主要目的

由于各种原因使原清晰图像变模糊,或原图未达到应有质量从而形成了降质,图像恢复的目的就是使退化图像恢复本来面目。

二、实现方法

图像恢复就是根据图像降质过程的某些先验知识,建立“退化(降质)模型”,运用和退化相反的过程,将退化图像恢复。恢复技术可分为无约束和有约束的两大类,在这里,我们用有约束恢复中的维纳滤波方法。

三、实验程序及结果

    1、实验程序

%通过模拟水平运动模糊建立退化函数

d=5;

h=zeros(2*d+1,2*d+1);

h(d+1,1:2*d+1)=1/(2*d);

%模糊原图像并加入加入噪声

fig1=imread('f:\apple.jpg');

fig1=rgb2gray(fig1);

[m n]=size(fig1);

fe=zeros(m+2*d,n+2*d);

fe(1:m,1:n)=fig1;

he=zeros(m+2*d,n+2*d);

he(1:2*d+1,1:2*d+1)=h;

F=fft2(fe);

H=fft2(he);

g=imnoise(uint8(ifft2(F.*H)),'gaussian',0,0.0009);

G=fft2(double(g));

%使用最小均方滤波器恢复图像

K=0.1;

F_est=((abs(H).^2)./(abs(H).^2+K)).*G./H;

fig_est=real(ifft2(F_est));

%显示图像

subplot(2,3,1);

imshow(fig1);

xlabel('(a)原图像');

%显示退化图像

subplot(2,3,2);

imshow(uint8(g(d+1:m+d,d+1:n+d)),[min(g(:)) max(g(:))]);

xlabel('(b)加噪声的退化图像');

%显示恢复图像

subplot(2,3,3);

imshow(uint8(fig_est(1:m,1:n)),[min(fig_est(:)) max(fig_est(:))]);

xlabel('(c)回复后的图像');

%第二幅图片

%通过模拟水平运动模糊建立退化函数

d=5;

h=zeros(2*d+1,2*d+1);

h(d+1,1:2*d+1)=1/(2*d);

%模糊原图像并加入加入噪声

fig1=imread('f:\flower.jpg');

fig1=rgb2gray(fig1);

[m n]=size(fig1);

fe=zeros(m+2*d,n+2*d);

fe(1:m,1:n)=fig1;

he=zeros(m+2*d,n+2*d);

he(1:2*d+1,1:2*d+1)=h;

F=fft2(fe);

H=fft2(he);

g=imnoise(uint8(ifft2(F.*H)),'gaussian',0,0.0009);

G=fft2(double(g));

%使用最小均方滤波器恢复图像

K=0.1;

F_est=((abs(H).^2)./(abs(H).^2+K)).*G./H;

fig_est=real(ifft2(F_est));

%显示图像

subplot(2,3,4);

imshow(fig1);

xlabel('(a)原图像');

%显示退化图像

subplot(2,3,5);

imshow(uint8(g(d+1:m+d,d+1:n+d)),[min(g(:)) max(g(:))]);

xlabel('(b)加噪声的退化图像');

%显示恢复图像

subplot(2,3,6);

imshow(uint8(fig_est(1:m,1:n)),[min(fig_est(:))max(fig_est(:))]); xlabel('(c)回复后的图像');

2、实验结果

报告六 图像分割

一、主要目的

图像分割是图象分析的前期工作、关键步骤。欲对图象进行分析(识别)时,首先要提取特征,而这些特征都包含在图象中的不同部分(如目标物、背景),所以必须先对图象进行分割,然后才能区分并确定这些不同部分。

二、实现方法

1、边缘检测法:利用区域间之灰度不连续性,确定区域的边界或边缘的位置。

2、阈值分割法:目标物和背景、不同目标物之间的灰度值有明显差异,可通过灰度门限进行区分。

3、区域分割法:利用区域内灰度的相似性,将象素(点)分成若干相似的区域。

三、实验程序及结果

    1、边缘检测法程序及结果

>> f1=imread('f:\7.jpg');

>> f1=rgb2gray(f1);

>> subplot(2,3,1);

>> imshow(f1);

>> xlabel('(a)输入图像');

>> BW = edge(f1,'canny');

>> BW1 = edge(f1,'sobel');

>> subplot(2,3,2);

>> imshow(BW);

>> xlabel('(b)Canny边缘检测');

>> subplot(1,3,3);

>> subplot(2,3,3);

>> imshow(BW1);

>> xlabel('(c)Sobel边缘检测');

>> f1=imread('f:\4.jpg');

>> f1=rgb2gray(f1);

>> subplot(2,3,4);

>> imshow(f1);

>> xlabel('(a)输入图像');

>> BW = edge(f1,'prewitt');

>> BW1 = edge(f1,'robert');

>> subplot(2,3,5);

>> imshow(BW);

>> xlabel('(b)prewitt算法');

>> imshow(BW1);

>> subplot(2,3,5);

>> imshow(BW);

>> xlabel('(b)prewitt算法');

>> subplot(2,3,6);

>> imshow(BW1);

>> xlabel('(c)robert算法');

2、阈值分割法

f1=imread('f:\flower.jpg');

f1=rgb2gray(f1);

[M N]=size(f1);

subplot(2,2,1);

imshow(f1);

xlabel('(a)输入图像');

T1=255*graythresh(f1);

f1new=zeros([M N]);

for i=1:M

    for j=1:N

        if f1(i,j)>T1

           f1new(i,j)=255;

        else

           f1new(i,j)=0;

        end

    end

end

subplot(2,2,2);

imshow(f1new);

xlabel('(b)分割结果');

f1=imread('f:\strewberry.jpg');

f1=rgb2gray(f1);

[M N]=size(f1);

subplot(2,2,3);

imshow(f1);

xlabel('(a)输入图像');

T1=255*graythresh(f1);

f1new=zeros([M N]);

for i=1:M

    for j=1:N

        if f1(i,j)>T1

           f1new(i,j)=255;

        else

           f1new(i,j)=0;

        end

    end

end

subplot(2,2,4);

imshow(f1new);

xlabel('(b)分割结果');

3、 区域分割法

>> I=imread('f:\cameraman.tif');

>> S = qtdecomp(I,.27);

>> blocks=repmat(uint8(0),size(S));

>> for dim=[512 256 128 64 32 16 8 4 2 1];

       numblocks=length(find(S==dim));

       if(numblocks>0)

         values=repmat(uint8(1),[dim dim numblocks]);

         values(2:dim,2:dim,:)=0;

   blocks=qtsetblk(blocks,S,dim,values);

       end

   end

>> blocks(end,1:end)=1;

>> blocks(1:end,end)=1;

>> subplot(1,2,1);

>> imshow(I);

>> xlabel('(a)输入图像');

>> subplot(1,2,2);

>> imshow(blocks,[]);

>> xlabel('(b)分割结果')

附录  出现问题及解决办法

1、刚开始将图片读入matlab时就出现了问题,由于imread函数的路径写错了,图片读出总是出错,后来把要处理的图片全部放到f:\下,这个时候再用x=imread('f:\4.jpg');就能顺利读出matlab非自带的图片。

2、读进去的图片因为都是自己在网上找的,所以一般都很大,这样读入后matlab命令窗口就会显示警告,图片过大,后来用subplot函数将画图窗口分割成几块就不再显示警告了。

3、程序检查没有错误,却还是显示错误,后来自己摸索,才想到由于读入的图像是彩色RGB图像,而要进行求其直方图只能对灰度图像进行,故用x=rgb2gray(x);语句就很好的解决了这个问题。

4、在分割处理图像使用qtdecomp函数时,这句S = qtdecomp(I,.27);总是显示出错,反复试过很多次但找不出错在哪里,后来翻查matlab工具书才知道qtdecomp函数处理的图像必须是方阵图像,即行数和列数必须相等的图像才可以。

5、在做直方图处理时,imhist函数、title的使用也出错过很多次,它们一句编写完成后都不能加分号;否则也会出错。

6、在使用function函数调用这一块儿还有问题。

心得体会

Matlab是个相当强大的工科处理工具,且Matlab的语句相对C要简单很多,很熟练的使用会让学习、研究工作事半功倍,并且能很直观显示很多人工无法实现的功能。输程序时一定要小心谨慎,很多小地方都容易被我们忽视,可机器再灵活毕竟是机器,方便的同时也有机械的一面,多一个少一个符号都会显示错误。而常常这样的小错误是很难找出来的,所以为了不给自己找麻烦,编写时一定要仔细、严谨,现在我已经对红颜色的句子有畏惧感了。

虽然这样,但还是觉得Matlab如果用顺手了,其实还是相当方便,能为以后的学习提高很大的帮助,所以即便这门课程已经结束了,但我想我们学习、使用、挖掘它的脚步还只是刚刚开始!

更多相关推荐:
matlab实验报告

MATLAB教程及实训班级学号姓名实验报告实验1熟悉matlab的开发环境及矩阵操作一实验的教学目标通过本次实验使学生熟悉MATLAB70的开发环境熟悉MATLAB工作界面的多个常用窗口包括命令窗口历史命令窗口...

matlab基本操作实验报告

实验一matlab基本操作一实验目的熟悉matlab的安装与启动熟悉matlab用户界面熟悉matlab功能建模元素熟悉matlab优化建模过程二实验设备与仪器1微机2matlab仿真软件三实验步骤1了解mat...

matlab实验报告

课程设计说明书(论文)题目带限数字基带传输系统的仿真课程名称Matlab通信仿真设计专业通信工程班级1203学生姓名徐xx学号2012xxxx20329指导教师文xx设计起止时间:20xx年12月18日至20x…

matlab音乐处理合成实验报告

MATLAB高级编程与工程应用语音合成综合实验姓名班级学号日期121简单的合成音乐1请根据东方红片断的简谱和十二平均律计算出该片断中各个乐音的频率在MATLAB中生成幅度为1抽样频率为8kHz的正弦信号表示这些...

东南大学几何与代数matlab实验报告

数学实验报告学号姓名吴雪松得分实验1求解线性方程组实验内容用MATLAB求解如下线性方程组Axb其中5100A00006510000006510000006510000006510000006510000006...

matlab实验报告

数学实验报告班级学号姓名实验序号1日期年月日实验名称特殊函数与图形问题背景描述绘图是数学中的一种重要手段借助图形可以使抽象的对象得到明白直观的体现如函数的性质等同时借助直观的图形使初学者更容易接受新知识激发学习...

Matlab实验报告一

数学与信息科学系实验报告实验名称程序设计所属课程数学软件与实验实验类型综合型实验专业信息与计算科学班级20xx级1班学号姓名指导教师1234567

matlab实验报告

MATLAB实验报告1在区间11上分别取n1020用两组选中节点对龙格函数fx插值及三次样条插值对每个n值分别画出插值函数及fx的图形解n10在matlab命令窗口中键入gtgtx1021y1125x2y1in...

matlab实验报告格式

数学实验报告实验序号:1日期:20XX年10月20日班级姓名学号实验名称:特殊函数与图形问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到明白直观的体现,如函数的性质等。同时,借助直观的图…

matlab实验报告

重庆交通大学学生实验报告实验课程名称专业综合实验开课实验室交通运输工程实验教学中心学院交通运输年级二年级专业班交通运输1班学生姓名学号63120xx20开课时间20xx至20xx学年第2学期

matlab实验报告

南京工程学院课程设计说明书论文题目课程名称院系部中心专业班级学生姓名学号设计地点指导教师设计起止时间20xx年12月8日至20xx年12月12日一课程设计目的和要求1综合运用信号与线性系统通信原理以及matla...

Matlab实验报告

程序设计训练报告题目学生姓名学生学号专业班级指导老师20xx年6月22日一实验名称用matlab处理基本运算与画图二实验目的1掌握二维曲线绘图的基本方法与命令2掌握一个窗口多个图形的画法分割子窗口的画法三实验说...

matlab实验报告(13篇)