您的当前位置:首页正文

实验一 图像统计特征及图像几何变换

2022-04-28 来源:易榕旅网
重庆大学光电工程学院《数字图像处理》实验指导书 实验一

实验一 图像统计特征及图像几何变换

一、实验目的

1) 掌握MATLAB语言中图像数据与信息的读取方法;

2) 掌握图像的基本类型,了解常用图像格式及类型之间的转换; 3) 掌握图像的典型统计特征计算方法; 4) 掌握在MATLAB中绘制灰度直方图的方法; 5) 掌握图像典型几何变换的计算方法;

6) 掌握计算机的使用方法和常用系统软件及应用软件的使用。

7) 通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。

二、实验原理

1. BMP图像及JPG图像的编码格式

1) BMP格式是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持,并被广泛应用。这种格式包含的图像信息较丰富,几乎不进行压缩,由此导致了它与生俱生来的缺点——占用磁盘空间过大。它有这样一些特点:只能存放一幅图像;只能存储四种图像数据:单色、16色、256色、真彩色;图像数据有压缩或不压缩两种处理方式;调色板的数据存储结构较为特殊,其存储格式不是固定的,而是与文件头的某些具体参数密切相关。

BMP图像文件的文件结构可分为三部分:表头、调色板和图像数据。表头固定54字节,只有真彩色BMP图像文件内没有调色板数据,其余不超过256种颜色的图像文件都必须设定调色板信息。调色板是包含不同颜色的颜色表,每一种颜色以红绿蓝三种颜色的组合来表示,图像每一像素对应一个数字,而该数字对应调色板中一种颜色,如某像素值为1,表示给颜色为调色板的编号为1的颜色。调色板的单元个数等于图像的颜色数。真彩色图像的每个像素值直接用RGB三个字节来表示颜色,不需要调色板。所谓16色或256色,只是表示该幅图像最多只能有16种颜色或256种颜色。

2) JPEG格式与JPEG2000格式:JPEG格式是常见的一种图像格式,由联合图像专家小组开发。它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,可用最少的磁盘空间得到较好的图像质量。JPEG格式具有调节图像质量的功能,允许用不同的压缩比例对这种文件压缩,比如可以把1.37MB的BMP位图文件压缩至20.3KB。实际使用中,需

第1页 共6页

重庆大学光电工程学院《数字图像处理》实验指导书 实验一

要在图像质量和文件尺寸之间找到平衡点。

JPEG2000格式作为JPEG格式的升级版,其压缩率比JPEG高约30%左右。与JPEG不同的是,JPEG2000同时支持有损和无损压缩。此外,JPEG2000 放弃了JPEG所采用的以离散余弦变换(Discrete Cosine Transform)为主的区块编码方式,而改以小波变换(Wavelet transform) 为主的多解析编码方式,能够实现渐进传输,即先传输图像轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示,而不必是像原来的JPEG一样,由上到下慢慢显示。 2.图像的基本统计特征

设灰度图像为I[W][H],其中W表示图像宽度,H表示图像的高度,那么灰度图像的平均灰度、方差、直方图(近似概率密度分布)由如下计算公式得到:

1均值: mWH1方差:vWH直方图:h(i)级像素数目。

HI(y,x)

y1x1W2HWI(y,x)my1x1

Li;i0,1,...,L1;其中L是灰度级的个数,Li为某一灰度WH3.图像的简单几何变换

图像的上下、左右颠倒意味着对应的像素点交换位置,根据这一原则可实现图像的简单几何变换。原图中的(x0,y0)绕原点逆时针旋转后,坐标将变成

x1x0cos()y0sin() yxsin()ycos()001为获得平滑的新图,需要利用插值算法。

图像的水平(垂直)切变意味着图像在水平(垂直)方向上两点之间速度的变化,原图中的(x0,y0)经过水平切变后,坐标将变成

x11kx0y y0101经过垂直切变后,坐标将变成

x110x0y yk101复杂的几何变换涉及到矩阵运算的组合,作为课后思考题。

第2页 共6页

重庆大学光电工程学院《数字图像处理》实验指导书 实验一

4.MATLAB图像处理基础

4.1.MATLAB支持的图像文件格式

MATLAB支持的图像文件格式超过15种,其中需要重点理解的格式有两种: 1) JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的

图像压缩格式。

2) BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位

RLE(Run length Encoded)的图像。文件内容包括文件头(一个BITMAP FILEHEADER数据结构)、位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜色表)和图像数据。

4.2.MATLAB支持的图像类型判断及图像类型转换

MATLAB支持五种图像类型包括二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列,具体定义见表1。重点理解前四种类型。

表1 图像类型及其对应的像素数据类型

图像类型 二值图像 索引图像 灰度图像 double数据 范围[0,1] 范围[0,p] 阵,范围[0,1] 数矩阵,范围[0,1] uint8和uint16数据 [0,1] [0,p-1] [0,255]或[0,65535] 围[0,255]或[0,65535] 图像为m×n整数矩阵,图像为m×n的整数矩阵,范围图像为m×n整数矩阵,图像为m×n的整数矩阵,范围图像为m×n浮点数矩图像为m×n的整数矩阵,范围RGB图像 图像为m×n×3的浮点图像为m×n×3的整数矩阵,范在MATLAB中如果要判断一个图像文件的类型,可使用如下指令:

   

isbw:若图像为二值图像,则返回真。 isgray:若图像为灰度图像,则返回真。 isind:若图像为索引图像,则返回真。 isrgb:若图像为RGB图像,则返回真。

gray2ind:灰度图像或二值图像向索引图像转换。 grayslice:设定阈值将灰度图像转换为索引图像。 im2bw:设定阈值将灰度、索引、RGB图像转换为im2double:将图像数组转换为double型。

第3页 共6页

MATLAB还提供了若干函数,用于图像类型的转换:

  

二值图像。

重庆大学光电工程学院《数字图像处理》实验指导书 实验一

 

im2uint8:将图像数组转换为uint8型。

im2uint16:将图像数组转换为uint16型。该函数不ind2gray:索引图像向灰度图像转换。 ind2rgb:索引图像向RGB图像转换。 mat2gray:将一个数据矩阵转换为灰度图像。 rgb2gray:RGB图像向灰度图像转换或将彩色色图

支持二值图像序列的转换。

   

转换成灰度色图。

4.3.MATLAB对图像文件的读、写、显示

查询一个图像文件信息,函数调用格式为:

info = imfinfo(filename,fmt) info = imfinfo(filename)

参数filename是指文件完整路径名。

参数fmt对应于所有图像处理工具箱中所有支持的图像文件格式。 图像文件读指令

A = imread(filename,fmt)

其作用是从图像文件中读取数据。

文件名用字符串filename表示,扩展名用fmt表示, 矩阵A为读取的图像数据。如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,则A为一个m×n×3的三维矩阵。filename表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径。

imread的其他重要的调用格式包括: [X,map] = imread(filename,fmt) […] = imread(filename)

图像文件写指令

imwrite(A,filename,fmt) imwrite(X,map,filename,fmt) imwrite(…,filename)

imwrite(…,Param1,Val1,Param2,Val2…) 作用是数据写入到图像文件filename中。

其中imwrite(…,Param1,Val1,Param2,Val2…)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。MATLAB

第4页 共6页

重庆大学光电工程学院《数字图像处理》实验指导书 实验一

中默认的保存类型是uint8。由于PNG和TIFF格式支持16位的图像,所以保存这类图像时,保存类型就是uint16。 图像显示命令

imshow filename:显示图像文件。

imshow(I,[low high]):将非图像数据显示为图像,这需要考虑数据是否超出了所显示类型的最大允许范围,其中[low high]用于定义待显示数据的范围。

imshow(BW):显示二值图像,BW为黑白二值图像矩阵。 imshow(X,map):显示索引图像,X为索引图像矩阵,map为色彩图示。

imshow(I):显示灰度图像,I为二值图像矩阵。

imshow(RGB):显示RGB图像,RGB为RGB图像矩阵。

三、主要实验仪器及材料

微型计算机、Matlab 6.5教学版。

四、实验内容

1.知识准备

认真复习以上基础理论,理解本实验所用到的实验原理。 2.BMP图像格式分析

1) 读取一幅BMP图像,观察其格式,并对该格式中文件头大小,是否有

调色板,是否为灰度图等进行分析并给出结论。

2) 读取一幅256色BMP图像,将其转为灰度图,查看文件大小的变化。 3) 读取一幅JPG图像,将其转化为BMP图像。 3.编程求取图像的统计特征

1) 求取图像的最大值,最小值,平均值,方差等统计参数;

2) 编写灰度图象的灰度值直方图的函数,并与MATLAB提供的IMHIST

函数的结果进行比较;

4.编程进行图像的几何变换

1) 对图像进行水平、垂直方向上的平移,观察变换后的灰度直方图; 2) 对图像进行水平、垂直方向上的颠倒,观察变换后的灰度直方图;

第5页 共6页

重庆大学光电工程学院《数字图像处理》实验指导书 实验一

3) 对图像进行水平、垂直及混合方向上的切变,观察变换后的图像及灰度

直方图;

4) 对图像绕中心顺时针旋转45度及135度,观察变换后的图像及灰度直

方图;

5) (提高题) 对图像绕某一指定点顺时针旋转任意角度,观察变换后的图像

及灰度直方图。

5.上机调试程序并打印或记录实验结果 6.完成实验报告

五、实验报告要求

1) 简述实验原理及目的。 2) 给出上述实验内容的实验结果。

3) 列出计算图像统计特征、图像几何变换的公式,画出程序框图,并列出

实验程序清单(可略)(包括必要的程序说明)。 4) 记录调试运行情况及所遇问题的解决方法。 5) 给出实验结果,并对结果做出分析。

6) 实验中出现的图表要做出标记,并按相同比例适当缩放,连同文字打印

出来粘在实验报告内页。

7) 简要回答思考题。

(A)如何调整图像的直方图分布,使之近似于正态分布?

(B)如何利用矩阵运算实现图像一般性的几何变换(如旋转缩放组合)? (C)图像几何变换中的双线性插值、三次立方插值算法如何编程实现?

第6页 共6页

因篇幅问题不能全部显示,请点此查看更多更全内容