数字图像处理作业2.docx

上传人:b****6 文档编号:8388130 上传时间:2023-01-31 格式:DOCX 页数:7 大小:339.06KB
下载 相关 举报
数字图像处理作业2.docx_第1页
第1页 / 共7页
数字图像处理作业2.docx_第2页
第2页 / 共7页
数字图像处理作业2.docx_第3页
第3页 / 共7页
数字图像处理作业2.docx_第4页
第4页 / 共7页
数字图像处理作业2.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

数字图像处理作业2.docx

《数字图像处理作业2.docx》由会员分享,可在线阅读,更多相关《数字图像处理作业2.docx(7页珍藏版)》请在冰豆网上搜索。

数字图像处理作业2.docx

数字图像处理作业2

数字图像处理作业2

 

数字图像处理作业

 

学院:

专业班级:

姓名:

学号:

摘要

MATLAB全称是MatrixLaboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。

实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。

这一特点也就决定了MATLAB在处理数字图像上的独特优势。

理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。

二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。

而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读、写和显示。

MATLAB对图像的处理功能主要集中在它的图像处理工具箱(ImageProcessingToolbox)中。

图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

 

一、MATLAB语言的基本操作

MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C语言基础的人可以很快掌握。

针对数字图像处理的需要,可以重点掌握以下几个内容:

矩阵、向量的输入和操作(包括如何输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、减、点乘等)

二、MATLAB中图像文件的读/写

(a)imread

imread函数用于读入各种图像文件,其一般的用法为

[X,MAP]=imread(‘filename’,‘fmt’)

其中,X为读出的图像数据,MAP为颜色表数据(或称调色板,亦即颜色索引矩阵,对灰度图像和RGB彩色图像,该MAP为空矩阵),fmt为图像的格式(可以缺省),filename为读取的图像文件(可以加上文件的路径)。

例:

[X,MAP]=imread(‘flowers.tif’,‘tif’)

(b)imwrite

imwrite函数用于输出图像,其语法格式为:

imwrite(X,MAP,filename,fmt)

imwrite(X,MAP,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板MAP写入文件filename。

(c)imfinfo

imfinfo函数用于读取图像文件的有关信息,其语法格式为

imfinfo(filename,fmt)

imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:

文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、每个像素的位数(BitDepth)、图像的类型(ColorType)、颜色表矩阵(Colormap)等等。

三、MATLAB中图像文件的显示

MATLAB图像处理工具箱提供了imshow函数来显示各种图像,其语法如下:

imshow(I,n)

或imshow(I_BW);imshow(X,MAP);imshow(I_RGB)

其中imshow(I,n)用于显示灰度图像,I是图像数据矩阵,n为灰度级数目(n可缺省,缺省值为256)。

其它的分别用于显示二值图像、索引色图像和RGB真彩色图像。

另外,对RGB彩色图像,还可以用imshow(RGB(:

:

1))、imshow(RGB(:

:

2))、imshow(RGB(:

:

3))分别显示RGB图像的R、G、B三个分量(注意:

这样显示出的图像是以各分量值为对应的灰度值所显示的灰度图像)。

需要显示多幅图像时,可以使用figure语句,它的功能就是打开一个新的图像显示窗口。

也可以使用subplot函数将多幅图像显示在同一个图像显示窗口的不同区域位置。

四、图像的旋转

在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法。

imrotate的语法格式为:

B=imrotate(A,angle,‘method’)

函数imrotate对图像进行旋转,参数’method’用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。

一般说来旋转后的图像会比原图大,超出原图部分值为0。

五、对比度调整

如果原图像f(x,y)的灰度范围是[m,M],我们希望对图像的灰度范围进行线性调整,调整后的图像g(x,y)的灰度范围是[n,N],那么下述变换:

就可以实现这一要求。

MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度调整。

imadjust函数的语法格式为:

J=imadjust(I,[low_inhigh_in],[low_outhigh_out])

J=imadjust(I,[low_inhigh_in],[low_outhigh_out])返回原图像I经过对比度调整后的新图像J。

其中[low_inhigh_in]为原图像中要变换的灰度范围,[low_outhigh_out]指定了变换后的灰度范围,灰度范围可以用[]空矩阵表示默认范围,默认值为[0,1](注意:

灰度范围只能在0~1之间)。

代数运算是指对两幅输入图像进行点对点的加、减、乘或除运算而得到输出图像的运算。

对于相加和相乘的情形,可能不止有两幅图像参加运算。

在一般情况下,输入情况之一可能为常数。

四种图像处理代数运算的数学表达式如下:

其中A(x,y)和B(x,y)为输入图像,而C(x,y)为输出图像。

还可以通过适当的组合形成涉及几幅图像的复合代数运算方程。

在MATLAB中,我们可以用函数imread很容易的得到数字图像的图像数据矩阵(即A(x,y)和B(x,y)),有了这些矩阵后我们只要适当地设计代数运算的形式并写出方程,就可以得到一个输出图像的矩阵(即C(x,y))。

图像相加的一个重要应用是对同一场景的多幅图像求平均值。

这点被经常用来有效的降低加性随机噪声的影响。

在求平均值的过程中,图像的静止部分不会改变,而对每一幅图像,各不相同的噪声图案则累积很慢。

对M幅图像进行平均,使图像中每一点的平方信噪比提高了M倍,幅度信噪比是功率信噪比的平方根,因此达到了提高信噪比降低噪声的作用。

六、图像加入噪声

本次实验要求完成人为的往一幅图像中加入随机噪声,并通过多次相加求平均的方法降低所加入的噪声对图像的影响。

在MATLAB中提供了给图像加入噪声的函数imnoise,imnoise的语法格式为

J=imnoise(I,type)

J=imnoise(I,type,parameters)

其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。

参数type和parameters用于确定噪声的类型和相应的参数。

下面的命令是对图像eight.tif分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如图所示:

例:

I=imread('eight.tif');

J1=imnoise(I,'gaussian',0,0.02);

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

J3=imnoise(I,'speckle',0.02);

subplot(2,2,1),imshow(I),title('原图像');

subplot(2,2,2),imshow(J1),title('加高斯噪声');

subplot(2,2,3),imshow(J2),title('加椒盐噪声');

subplot(2,2,4),imshow(J3),title('加乘性噪声');

 

程序:

I=imread('E:

\8.tif');

J=imrotate(I,30,'bilinear');

imshow(I);title('原图像')

figure,imshow(J);title('旋转后的图像')

J=imadjust(I,[0.30.7],[]);%输出灰度范围为默认范围,即为[0,1]

figure,imshow(J);title('对比度调整')

J1=imnoise(I,'gaussian',0,0.02);

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

J3=imnoise(I,'speckle',0.02);

subplot(2,2,1),imshow(I),title('原图像');

subplot(2,2,2),imshow(J1),title('加高斯噪声');

subplot(2,2,3),imshow(J2),title('加椒盐噪声');

subplot(2,2,4),imshow(J3),title('加乘性噪声');

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

当前位置:首页 > 总结汇报 > 学习总结

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

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