数字图像处理基础程序及运行结果图像matlab程序 1.docx

上传人:b****8 文档编号:10980427 上传时间:2023-02-24 格式:DOCX 页数:41 大小:1.42MB
下载 相关 举报
数字图像处理基础程序及运行结果图像matlab程序 1.docx_第1页
第1页 / 共41页
数字图像处理基础程序及运行结果图像matlab程序 1.docx_第2页
第2页 / 共41页
数字图像处理基础程序及运行结果图像matlab程序 1.docx_第3页
第3页 / 共41页
数字图像处理基础程序及运行结果图像matlab程序 1.docx_第4页
第4页 / 共41页
数字图像处理基础程序及运行结果图像matlab程序 1.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

数字图像处理基础程序及运行结果图像matlab程序 1.docx

《数字图像处理基础程序及运行结果图像matlab程序 1.docx》由会员分享,可在线阅读,更多相关《数字图像处理基础程序及运行结果图像matlab程序 1.docx(41页珍藏版)》请在冰豆网上搜索。

数字图像处理基础程序及运行结果图像matlab程序 1.docx

数字图像处理基础程序及运行结果图像matlab程序1

数字图像处理实验和matlab程序代码

目录

实验一MATLAB数字图像处理初步3

实验二图像的代数运算7

实验三图像增强—灰度变换10

实验四图像增强—直方图变换12

实验五图像增强—空域滤波14

实验六图像的傅立叶变换18

实验七图像增强—频域滤波20

实验八彩色图像处理22

实验九图像分割25

实验十形态学运算28

 

实验一MATLAB数字图像处理初步

一、实验目的与要求

1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

2.熟练掌握在MATLAB中如何读取图像。

3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。

5.图像间如何转化。

二、实验内容及步骤

1.利用imread()函数读取一幅图像,假设其名为flower.tif,存入一个数组中;

2.利用whos命令提取该读入图像flower.tif的基本信息;

3.利用imshow()函数来显示这幅图像;

4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;

5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:

imwrite(原图像,新图像,‘quality’,q),q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

7.用imread()读入图像:

Lenna.jpg和camema.jpg;

8.用imfinfo()获取图像Lenna.jpg和camema.jpg的大小;

9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。

10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10步得到的图像效果拷贝下来

三、考核要点

1、熟悉在MATLAB中如何读入图像、如何获取图像文件的相关信息、如何显示图像及保存图像等,熟悉相关的处理函数。

2、明确不同的图像文件格式,由于其具体的图像存储方式不同,所以文件的大小不同,因此当对同一幅图像来说,有相同的文件大小时,质量不同。

五、实验仪器与软件

(1)PC计算机

(2)MatLab软件/语言包括图像处理工具箱(ImageProcessingToolbox)

(3)实验所需要的图片

四、实验内容

f=imread('C:

\Users\Gateway\Desktop\ͼƬ\flower.tif');

whosf;

imshow(f);

imfinfoC:

\Users\Gateway\Desktop\ͼƬ\flower.tif

ans=

Filename:

'C:

\Users\Gateway\Desktop\图片\flower.tif'

FileModDate:

'24-六月-201218:

46:

53'

FileSize:

392018

Format:

'jpg'

FormatVersion:

''

Width:

1600

Height:

1200

BitDepth:

24

ColorType:

'truecolor'

FormatSignature:

''

NumberOfSamples:

3

CodingMethod:

'Huffman'

CodingProcess:

'Sequential'

Comment:

{}

ans=%imfinfo压缩后的信息

Filename:

'flower.jpg'

FileModDate:

'25-六月-201216:

07:

40'

FileSize:

81013

Format:

'jpg'

FormatVersion:

''

Width:

1600

Height:

1200

BitDepth:

24

ColorType:

'truecolor'

FormatSignature:

''

NumberOfSamples:

3

CodingMethod:

'Huffman'

CodingProcess:

'Sequential'

Comment:

{}

f=imread('C:

\Users\Gateway\Desktop\ͼƬ\lenna.jpg');

g=imread('C:

\Users\Gateway\Desktop\ͼƬ\camera.jpg');

figure;imshow(f);

figure,imshow(g);

imfinfoC:

\Users\Gateway\Desktop\ͼƬ\lenna.jpg

imfinfoC:

\Users\Gateway\Desktop\ͼƬ\camera.jpg

ans=

Filename:

'C:

\Users\Gateway\Desktop\图片\lenna.jpg'

FileModDate:

'24-六月-201218:

44:

09'

FileSize:

21307

Format:

'jpg'

FormatVersion:

''

Width:

300

Height:

300

BitDepth:

24

ColorType:

'truecolor'

FormatSignature:

''

NumberOfSamples:

3

CodingMethod:

'Huffman'

CodingProcess:

'Sequential'

Comment:

{}

ans=

Filename:

'C:

\Users\Gateway\Desktop\图片\camera.jpg'

FileModDate:

'24-六月-201218:

44:

32'

FileSize:

18653

Format:

'jpg'

FormatVersion:

''

Width:

256

Height:

256

BitDepth:

24

ColorType:

'truecolor'

FormatSignature:

''

NumberOfSamples:

3

CodingMethod:

'Huffman'

CodingProcess:

'Sequential'

Comment:

{}

f=imread('C:

\Users\Gateway\Desktop\ͼƬ\lenna.jpg');

g=im2bw(f);

figure,imshow(g);

 

五、思考题

(1)简述MatLab软件的特点。

(2)MatLab软件可以支持哪些图像文件格式?

docimread

(3)说明函数imread的用途格式以及各种格式所得到图像的性质。

(4)为什么用I=imread(‘lena.bmp’)命令得到的图像I不可以进行算术运算?

 

实验二图像的代数运算

一、实验目的

1.了解图像的算术运算在数字图像处理中的初步应用。

2.体会图像算术运算处理的过程和处理前后图像的变化。

二、实验步骤

2.图像的减法运算

3.图像的乘法运算

4.图像的除法运算

三、实验内容

1.图像的加法运算

I=imread('C:

\Users\Gateway\Desktop\ͼƬ\lenna2.jpg');

J=imread('C:

\Users\Gateway\Desktop\ͼƬ\camera.jpg');

K=imadd(I,J);

imshow(K);

%lenna原图和camera尺寸大小不一样,不能相加,用ps将lenna裁剪成256*256与camera相同尺寸

I=imread('C:

\Users\Gateway\Desktop\ͼƬ\camera.jpg');

J=imadd(I,50);

subplot(1,2,1);imshow(I);

subplot(1,2,2);imshow(J);

 

2.图像的减法运算

I2=zeros(256,256);

I=imread('rice.png');imshow(I)

background=imopen(I,strel('disk',15));

figure,imshow(background)

I2=imsubtract(I,background);

figure,imshow(I2)

3.图像的乘法运算

I=imread('C:

\Users\Gateway\Desktop\ͼƬ\camera.jpg');

J=immultiply(I,1.5);

subplot(1,2,1);imshow(I);

subplot(1,2,2);imshow(J);

4.图像的除法运算

I=imread('rice.png');

J=double('rice.png');

K=J*0.43+90;

I2=unit8(J);

Ip=imdivide(I,I2);

imshow(Ip,[]);

5.图像的四则代数运算

I=imread('C:

\Users\Gateway\Desktop\ͼƬ\lenna2.jpg');

J=imread('C:

\Users\Gateway\Desktop\ͼƬ\camera.jpg');

Z=imlincomb(0.5,I,0.5,J,50);

imshow(Z);

四、思考题

由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?

从背景中提取图像

 

实验三图像增强—灰度变换

一、实验目的:

1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。

2、学会对图像直方图的分析。

3、掌握直接灰度变换的图像增强方法。

二、实验内容:

1、图像数据读出

2、计算并分析图像直方图

3、利用直接灰度变换法对图像进行灰度变换

I=imread('C:

\Users\Gateway\Desktop\ͼƬ\medicine.jpg');

J=rgb2gray(I);

imhist(J);

I=imread('C:

\Users\Gateway\Desktop\ͼƬ\medicine.jpg');

J=rgb2gray(I);

g=imhist(J,256);

g1=imadjust(f,[01],[10]);

figure;imshow(g1);

%将0.5到0.75的灰度级扩展到范围[01]

g2=imadjust(f,[0.50.75],[01]);

figure;imshow(g2);

g=imread('C:

\Users\Gateway\Desktop\ͼƬ\point.jpg');

h=log(1+double(g));%对输入图像对数映射变换

h=mat2gray(h);%将矩阵h转换为灰度图片

h=im2uint8(h);%将灰度图转换为8位图

figure;imshow(h);

 

实验四图像增强—直方图变换

一、实验目的

1.掌握灰度直方图的概念及其计算方法;

2.熟练掌握直力图均衡化和直方图规定化的计算过程;

3.熟练掌握空域滤波中常用的平滑和锐化滤波器;

4.掌握色彩直方图的概念和计算方法

5.利用MATLAB程序进行图像增强。

二、实验步骤

1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;

2调入“实验一”中获取的数字图像,并进行计算机均衡化处理;

3显示原图像的直方图和经过均衡化处理过的图像直方图。

4记录和整理实验报告

三、实验内容

I=imread('C:

\Users\Gateway\Desktop\ͼƬ\pollen.jpg');

g=rgb2gray(I);

J=histeq(g);%对原图像进行直方图均衡化处理

imshow(I);

title('ÔͼÏñ');

figure;imshow(J);

title('¾ùºâ»¯ºóͼÏñ');

figure,subplot(1,2,1);

imhist(g,64);%将原图像直方图显示为64级灰度

title('ÔͼÏñÖ±·½Í¼');

subplot(1,2,2);

imhist(J,64);

title('¾ùºâ»¯ºóÖ±·½Í¼');

 

四、思考题

1.直方图是什么概念?

它反映了图像的什么信息?

直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况.直方图是以图形化参数来显示图片曝光精确度的手段,其描述的是图片显示范围内影像的灰度分布曲线。

它可以帮助分析图片的曝光水平等一些信息

2.直方图均衡化是什么意思?

它的主要用途是什么?

直方图拉伸和直方图均衡化化是两种最常见的间接对比度增强方法,直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。

直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

 

实验五图像增强—空域滤波

一、实验目的

进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。

了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。

二、实验内容与步骤

a)调入并显示原始图像Sample2-1.jpg。

b)利用imnoise命令在图像Sample2-1.jpg上加入高斯(gaussian)噪声

c)利用预定义函数fspecial命令产生平均(average)滤波器

d)分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;

e)选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。

f)利用imnoise命令在图像Sample2-1.jpg上加入椒盐噪声(salt&pepper)

g)重复c)~e)的步骤

h)输出全部结果并进行讨论。

三、实验内容

i=imread('C:

\Users\Gateway\Desktop\ͼƬ\electric.tif');

I=rgb2gray(i);

J=imnoise(I,'gauss',0.02);

J=imnoise(I,'salt&pepper',0.02);

ave1=fspecial('average',3);%产生3*3均值模板

ave2=fspecial('average',5);

K=filter2(ave1,J)/255;%均值滤波

L=filter2(ave2,J)/255;

M=medfilt2(J,[33]);%中值滤波¨

N=medfilt2(J,[55]);

imshow(I);

figure;imshow(J);

figure;imshow(K);

figure;imshow(L);

figure;imshow(M);

figure;imshow(N);

原图gauss噪声

Gauss噪声3*3模板均值滤波Gauss噪声5*5模板均值滤波

Gauss噪声3*3中值滤波Gauss噪声5*5中值滤波

椒盐噪声

椒盐噪声3*3均值滤波椒盐噪声5*5均值滤波

椒盐噪声3*3中值滤波椒盐噪声5*5中值滤波

四,思考题/问答题

(1)简述高斯噪声和椒盐噪声的特点。

椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。

检验噪声往往由图像切割引起。

椒盐噪声是指两种噪声,一种是盐噪声(saltnoise),另一种是胡椒噪声(peppernoise)。

盐=白色,椒=黑色。

前者是高灰度噪声,后者属于低灰度噪声。

一般两种噪声同时出现,呈现在图像上就是黑白杂点。

高斯噪声是一种随机噪声。

在任选瞬时中任取n个,其值按n个变数的高斯概率定律分布。

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。

如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。

(2)结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?

两种滤波对高斯噪声效果都不是很好,5*5的中值滤波效果好于3*3。

中值滤波对椒盐噪声效果好于均值滤波。

(3)结合实验内容,定性评价滤波窗口对去噪效果的影响?

窗口越大,去噪效果越好,但是窗口越大所用的时间越多。

 

实验六图像的傅立叶变换

一、实验目的

1了解图像变换的意义和手段;

2熟悉傅立叶变换的基本性质;

3熟练掌握FFT变换方法及应用;

4通过实验了解二维频谱的分布特点;

5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。

6评价人眼对图像幅频特性和相频特性的敏感度。

二、实验原理

傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

三、实验步骤

1.将图像内容读入内存;

2.用Fourier变换算法,对图像作二维Fourier变换;

3.将其幅度谱进行搬移,在图像中心显示;

4.用Fourier系数的幅度进行Fourier反变换;

5.用Fourier系数的相位进行Fourier反变换;

6.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。

7.记录和整理实验报告。

四、实验内容

J=imread('C:

\Users\Gateway\Desktop\ͼƬ\number.jpg');

imshow(J);

I=rgb2gray(J);

fftI=fft2(I);%二维傅里叶变换

sfftI=fftshift(fftI);%直流分量移到频谱中心

figure;imshow(sfftI);

RR=real(sfftI);%取实部

II=imag(sfftI);%取虚部

A=sqrt(RR.^2+II.^2);%计算幅值

A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;%归一化

figure;

imshow(A);%显示图像频谱

另一种

J=imread('C:

\Users\Gateway\Desktop\ͼƬ\number.jpg');

I=rgb2gray(J);

F=fft2(I);%¶þάÀëÉ¢¸µÀïÒ¶±ä»»

S=abs(F);

imshow(S,[]);

FC=fftshift(F);

imshow(abs(FC),[]);

S2=log(1+abs(FC));

figure;imshow(S2,[]);

 

原图

归一化后图像

实验七图像增强—频域滤波

一、实验目的

1.掌握怎样利用傅立叶变换进行频域滤波

2.掌握频域滤波的概念及方法

3.熟练掌握频域空间的各类滤波器

4.利用MATLAB程序进行频域滤波

二、实验原理

频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。

频域低通过滤的基本思想:

G(u,v)=F(u,v)H(u,v)

F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。

n阶巴特沃兹低通滤波器(BLPF)(在距离原点

处出现截至频率)的传递函数为

与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在

处突然不连续。

高斯低通滤波器(GLPF)的传递函数为

其中,

为标准差。

二、实验步骤:

1.调入并显示所需的图片;

2.利用MATLAB提供的低通滤波器实现图像信号的滤波运算,并与空间滤波进行比较。

3.利用MATLAB提供的高通滤波器对图像进行处理。

4.记录和整理实验报告。

 

f1=imread('C:

\Users\Gateway\Desktop\ͼƬ\camera.jpg');

f=rgb2gray(f1);

F=fft2(f);

S=fftshift(log(1+abs(F)));

figure;imshow(S,[]);%²úÉúƵÆ×ͼÏñ

h=fspecial('sobel');

figure;freqz2(h);

PQ=paddedsize(size(f));

H=freqz2(h,PQ

(1),PQ

(2));

H1=ifftshift(H);

figure;imshow(abs(H),[]);

Sobel边缘提取

f=imread('C:

\Users\Gateway\Desktop\ͼƬ\dabao.jpg');

f=rgb2gray(f);

f=im2double(f);

[VSFAT]=edge(f,'sobel','vertical');

figure;imshow(f);

figure;imshow(VSFAT);

 

实验八彩色图像处理

一、实验目的

使用MatLab软件对图像进行彩色处理。

使学生通过实验熟悉使用MatLab软件进行图像彩色处理的有关方法,并体会到图像彩色处理技术以及对图像处理的效果。

二、实验要求

要求学生能够完成彩色图像的分析,能正确讨论彩色图像的亮度、色调等性质;会对彩色图像进行直方图均衡,并能正确解释均衡处理后的结果;能够对单色图像进行伪彩色处理、利用多波长图像进行假彩色合成、进行单色图像的彩色变换。

三、实验步骤

(1)彩色图像的分析

(2)彩色图像的直方图均衡

(3)假彩色处理

(4)伪彩色处理1:

灰度切片处理

(5)彩色变换(选做)

四、实验内容

f=imread('C:

\Users\Gateway\Desktop\ͼƬ\flower.tif');

figure;imshow(f);

fR=f(:

:

1);%获得红色分量

fG=f(:

:

2);%获得绿色分量

fB=f(:

:

3);%获得蓝色分量

figure;imshow(fR);

figure;imshow(fG);

figure;imshow(fB);

原图红色分量

绿色分量蓝色分量

%实现rgb图像转化为NTSC彩色空间的图像

f=imread('C:

\Use

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1