数字图像文件简介
图像的格式就是图像文件的数据构成,每种文件均有一个文件头,文件头之后才是图像数据。文件头的内容由制作该文件的公司决定,一般包括文件类型、文件制作者、制作时间、版本号和文件大小等内容。
1、 BMP文件
BMP(Bitmap,位图)是Windows操作系统的标准图像文件格式。特点是图像信息较丰富,几乎不用进行压缩,缺点是占用磁盘空间大。
2、 GIF文件
GIF(Graphics Interchange Format)的原意是“图像互换格式”,文件数据是基于LZW算法的连续色调的无损压缩格式,压缩率50%,特点是可以存储多幅彩色图像,如果把存于文件中的多幅图像数据依次读出显示在屏幕上,就可以构成简单的动画。总之其具有很好的压缩率和动画功能。
3、 JPEG图像格式
JPEG(Joint Phtographer`s Experts Group)即联合图像专家组,文件后缀名.jpg或者.jpeg,是一种有损压缩格式,主要压缩的是高频信息,对色彩的信息保留较好,适合应用在互联网
4、 ICO文件
ICO文件是Windows的图标文件格式的一种,可以存储单个图案、多尺寸、多色版的图标文件
5、 HDF文件
层次型数据格式(Hierarchical Data Format)可以存储不同类型的图像和数码数据的文件格式。特点:一是层次表达,灵活表达文件中不同数据元素之间的逻辑关系;二是B树存储,主要是体现存储的层次性;三是面向对象,指对对象的重用,降低数据的冗余度。
6、 PNG文件
流式网络图形格式(Portable Network Graphic Format)一种位图存储格式,目的是代替GIF格式,具有压缩比例高,文件容量小,一般用于JAVA程序和网页中。
7、 TIFF文件
标签图像文件格式(Tagged Image File Format)用来存储包括照片和艺术照在内的图像文件格式。
8、 DICOM
数学影像和通信标准(Digital Imaging and Communication in Medicine) 应用于医疗影像相关的信息系统。
MATLAB简介
MATLAB是一套优秀的数值计算应用软件,集数学运算,数值分析,矩阵运算,可视化功能和开放式环境于一体,病附带三十多种面向不同领域的工具箱,使其成为科学领域中计算机辅助设计和分析、算法研究和应用开发的主要工具之一,它在信号数据处理,系统建模和仿真,科学和工程绘图以及应用程序开发等方面得到了广泛的应用。
MATLAB 矩阵建立
1、三维数组的建立
要创建多维矩阵,需要用到cat函数,调用形式如下:
A = cat(n,A1,A2,A3, … ,Am)
其中,n是希望构建的数组维数,A1,A2,A3, … ,Am分别是m个二维数组,由这样m个二维数组构成的三维数组的第三维的维数为m,函数输出值A,是一个由n指定维数的数组。
>> a1 = [1,2,3;4,5,6,;7,8,9];
>> a2 = a1';
>> a3 = a1 -a2;
>> a4 = cat(3,a1,a2,a3)
a4(:,:,1) =
1 2 3
4 5 6
7 8 9
a4(:,:,2) =
1 4 7
2 5 8
3 6 9
a4(:,:,3) =
0 -2 -4
2 0 -2
4 2 0
2、矩阵访问
一是根据下标访问
二是根据序号访问,先将矩阵转换为一维向量,然后根据每个元素在向量中的序号访问
二维转一维注意顺序,起始是U型
矩阵运算
1、 基本算术运算
+(加),-(减),*(乘),/(右除),\(左除),^(乘方)。
矩阵除法有两种,如果是两个矩阵之间,A\B相当于A的逆左乘B,等效于inv(A)*B;B/A相当于A矩阵的逆右乘B,等效于B*inv(A).
2、 点运算
点运算有.* 、./、.\、.^四种。两矩阵的点运算指它们对应的元素相关的运算,要求两个矩阵的维数尺寸相同。
3、 关系运算
六种<、>、>=、<=、==、~=(不等于),标量之间,若关系成立结果为1,否则为0;维度相同的矩阵之间,是相同位置进行比较;标量与矩阵是标量与矩阵逐次比较。
4、逻辑运算
&(与)、|(或)、~(非)
5、矩阵其他运算
(1)求逆函数 inv()
(2)行列式的值 det()
(3)对角矩阵 diag()
(4)矩阵转置 “’”
6、矩阵其他操作
(1)size:矩阵尺寸
[m,n] = size(A);
返回矩阵A的行列数保存在m,n中
(2)abs:求绝对值
Z = abs(A);
返回矩阵A中每个元素的绝对值
(3)max: 求最大值
Z = max(A)
返回矩阵A中每一列的最大值
(4)min: 求最小值(同上)
(5)sum:求和
Z = sum(A)
返回矩阵A每一列的和
(6)floor:向下取整
B = floor(A)
返回小于或等于A的整数值,对于复数来说,分别对A的实部和虚部进行运算
(7)ceil: 向上取整(同上)
(8)round: 取近似整数值
Y = round(X)
返回距离X最近的整数值
(9)fix: 取整数部分
B = fix(A)
返回A的整数部分,小数部分为0
(10)find:查找非零值
ind = find(S)
查找矩阵S中非零的元素,返回向量为非零元素的一维位置
(11)ind2sub :一维序号到二维序号的转换
[x,y] = Ind2sub([m,n],index);
该函数将一维序号index转换成m*n的二维矩阵中坐标[x,y]
(12) reshape: 矩阵变形函数
Z= reshape(X,m,n);
将矩阵X按照U型顺序转换为m*n的矩阵
(13)repmat: 矩阵复制函数
Z= repmat(X,m,n);
该函数将矩阵X在水平方向复制m个,在竖直方向复制n个。
(14)padarray: 矩阵元素补充函数
Padarray(X,[m,n],vaule,parameters)
该函数按照给定的x,y方向补充元素数目[mn],补充元素值value和补充方式参数parameters,来补充矩阵
(15)fliplr: 矩阵左右颠倒
B= fliplr(A)
将矩阵的列顺序颠倒赋值给B
(16)flipud: 矩阵上下颠倒
B= flipud (A)
将矩阵的行顺序颠倒赋值给B
(17)circshift: 矩阵循环移位
B= circshift(A,[m,n]);
将矩阵A行顺序移位m,列顺序移位n;m正则向下,负则向上,n同理
(18)numel: 统计矩阵元素数目
N= numel(A)
该函数返回矩阵A中所有元素的数目
(19)sum:求向量中所有元素的和
S= sum(v);
求向量v中所有数据的和
(20)median: 求平均值
M = median(v)
求向量v中所有元素的平均值