聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 数字图像处理作业2

数字图像处理作业2

时间:2021-01-06 12:57:34    下载该word文档

数字图像处理作业

学院:

专业班级:

姓名:

学号:

摘要

MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMPGIFHDFJPEGPCXPNGTIFFXWDCURICO等图像文件格式的读、写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

一、MATLAB语言的基本操作

MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C语言基础的人可以很快掌握。针对数字图像处理的需要,可以重点掌握以下几个内容:矩阵、向量的输入和操作(包括如何输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、减、点乘等)

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

aimread

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

[XMAP]=imread( filename, fmt)



语法如下:

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图像的RGB三个分量(注意:这样显示出的图像是以各分量值为对应的灰度值所显示的灰度图像)。

需要显示多幅图像时,可以使用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_in high_in], [low_out high_out])

J = imadjust(I, [low_in high_in], [low_out high_out])返回原图像I经过对比度调整后的新图像J。其中[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1](注意:灰度范围只能在01之间)。

代数运算是指对两幅输入图像进行点对点的加、减、乘或除运算而得到输出图像的运算。对于相加和相乘的情形,可能不止有两幅图像参加运算。在一般情况下,输入情况之一可能为常数。

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

其中A(x,y)B(x,y)为输入图像,而C(x,y)为输出图像。还可以通过适当的组合形成涉及几幅图像的复合代数运算方程。

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

图像相加的一个重要应用是对同一场景的多幅图像求平均值。这点被经常用来有效的降低加性随机噪声的影响。在求平均值的过程中,图像的静止部分不会改变,而对每一幅图像,各不相同的噪声图案则累积很慢。对M幅图像进行平均,使图像中每一点的平方信噪比提高了M倍,幅度信噪比是功率信噪比的平方根,因此达到了提高信噪比降低噪声的作用。

六、图像加入噪声

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

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

J = imnoise(I, type)

J = imnoise(I, type, parameters)

其中J = imnoise(I, type)返回对原始图像I添加典型噪声的有噪图像J。参数typeparameters用于确定噪声的类型和相应的参数。

下面的命令是对图像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.3 0.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('加乘性噪声');

免费下载 Word文档免费下载: 数字图像处理作业2

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服