- 浏览: 15371 次
最新评论
搜编:常用图像格式(位图图形BMP & GIF & TIF & JPG/JPEG)+图像类型+图像类型转换+图像的显示
19小时前
搜编:常用图像格式(位图图形BMP & GIF & TIF & JPG/JPEG)+图像类型+图像类型转换+图像的显示
转自:http://hi.baidu.com/guangfjy/blog/item/ce70e27f9044020d29388a73.html
2008-04-10 10:08
#### 常用图像格式 ####
========1.位图图形
位图图形使用在网格内排列的称作像素的彩色点来描述图像。例如,树叶的图像由网格中每个像素的特定位置和颜色值来描述,这是用非常类似于镶嵌的方式来创建图像。
在编辑位图图形时,您修改的是像素,而不是直线和曲线。位图图形跟分辨率有关,因为描述图像的数据是固定到特定尺寸的网格上的。编辑位图图形可以更改它的外观品质。特别是调整位图图形的大小会使图像的边缘出现锯齿,因为网格内的像素重新进行了分布。在比图像本身的分辨率低的输出设备上显示位图图形时也会降低它的品质。
BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。
由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。
典型的BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。
BMP具有以下特点:
只存放一幅图像;
只能存储单色、16色、256色和真彩色(RGB)4种图像数据;
图像数据有压缩和非压缩两种处理方式;
调色板的数据存储格式不固定,与文件头的某些具体参数(如像素位bbp、压缩算法等)密切相关。其中,Windows设有RLE4和RLE8两种压缩方式。
BMP图像文件的文件结构分为表头(54byte)、调色板(RGB无)、图像数据三部分。
typedef struct tagBITMAPFILEHEADER {
WORD bfType; //Specifies the file type, must be BM
DWORD bfSize; //Specifies the size, in bytes, of the bitmap file
WORD bfReserved1; //Reserved; must be zero
WORD bfReserved2; //Reserved; must be zero
DWORD bfOffBits; //Specifies the offset, in bytes, from the beginning of the BITMAPFILEHEADER structure to the bitmap bits
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
具体数据举例:
如某BMP文件开头:
424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....
BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上面已用*分隔和底色区分。
一、图像文件头 424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100
1)1:(这里的数字代表的是"字",即两个字节,下同)图像文件头。424Dh=’BM’,表示是Windows支持的BMP格式。
2)2-3:整个文件大小。4690 0000,为00009046h=36934。
3)4-5:保留,必须设置为0。
4)6-7:从文件开始到位图数据之间的偏移量。4600 0000,为00000046h=70,上面的文件头就是35字=70字节。
5)8-9:位图图信息头长度。
6)10-11:位图宽度,以像素为单位。8000 0000,为00000080h=128。
7)12-13:位图高度,以像素为单位。9000 0000,为00000090h=144。
8)14:位图的位面数,该值总是1。0100,为0001h=1。
二、位图信息头 1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000
9)15:每个像素的位数。有1(单色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增强型真彩色)。1000为0010h=16。
10)16-17:压缩说明:有0(不压缩),1(RLE 8,8位RLE压缩),2(RLE 4,4位RLE压缩,3(Bitfields,位域存放)。RLE简单地说是采用像素数+像素值的方式进行压缩。T408采用的是位域存放方式,用两个字节表示一个像素,位域分配为r5b6g5。图中0300 0000为00000003h=3。
11)18-19:用字节数表示的位图数据的大小,该数必须是4的倍数,数值上等于位图宽度×位图高度×每个像素位数。0090 0000为00009000h=80×90×2h=36864。
12)20-21:用象素/米表示的水平分辨率。A00F 0000为0000 0FA0h=4000。
13)22-23:用象素/米表示的垂直分辨率。A00F 0000为0000 0FA0h=4000。
14)24-25:位图使用的颜色索引数。设为0的话,则说明使用所有调色板项。
15)26-27:对图象显示有重要影响的颜色索引的数目。如果是0,表示都重要。
三、彩色板 00F8 0000 E007 0000 1F00 0000 0000 0000
16)28-35:彩色板规范。对于调色板中的每个表项,用下述方法来描述RGB的值:
1字节用于蓝色分量
1字节用于绿色分量
1字节用于红色分量
1字节用于填充符(设置为0)
对于24-位真彩色图像就不使用彩色板,因为位图中的RGB值就代表了每个象素的颜色。
如,彩色板为00F8 0000 E007 0000 1F00 0000 0000 0000,其中:
00FB 0000为FB00h=1111100000000000(二进制),是红色分量的掩码。
E007 0000为 07E0h=0000011111100000(二进制),是绿色分量的掩码。
1F00 0000为001Fh=0000000000011111(二进制),是红色分量的掩码。
0000 0000总设置为0。
将掩码跟像素值进行“与”运算再进行移位操作就可以得到各色分量值。看看掩码,就可以明白事实上在每个像素值的两个字节16位中,按从高到低取5、6、5位分别就是r、g、b分量值。取出分量值后把r、g、b值分别乘以8、4、8就可以补齐第个分量为一个字节,再把这三个字节按rgb组合,放入存储器(同样要反序),就可以转换为24位标准BMP格式了。
四、图像数据阵列02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....
17)17-...:每两个字节表示一个像素。阵列中的第一个字节表示位图左下角的象素,而最后一个字节表示位图右上角的象素。
========2.GIF(Graphics Interchanger Format)
最初由CompuServe公司在网络中用于在线传输图像数据。经常用于网页的动画、透明等特9技制作。具有一下特点:
具有多元化结构,能够存储多张图像;
调色板具有通用调色板和局部调色板之分;
采用了LZW压缩法;
图像数据一个byte存储一个pixel;
图像数据具有顺序排列和交叉排列两种方式;
最多只能存储256色图像。
GIF图像文件结构一般由表头、通用调色板、图像数据区(可选)以及4个补充区(可选)组成。
========3.TIF(Tag Image File Format)
现有图像格式中最复杂的一种,由Aldus和微软开发设计,提供了各种信息存储的完备手段。其主要特点:
应用指针实现多幅图像存储;
除规定表头必须在文件前端,标记信息区和图像数据库可随意存放;
接受RBB之外的CMYK、YcbCr等多种图像模式
可存储多份调色板数据;
提供多种不同的数据压缩方法;
图像数据可分割成几部分分别存档。
TIF图像文件主要由表头、标识信息区和图像数据区三部分组成。
========4.JPEG(Joint Photographic Experts Group) 全称为“连续色调静态图像的数字压缩和编码”或称“联合图像专家组”。文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式
JPEG标准只是定义了一个规范的编码数据流,并没有规定图像数据文件的格式。其特点有:
既可用于灰度图像又可用于彩色图像
采用离散余弦变换、量化、行程与哈夫曼编码等技术
支持无损(压缩比2:1)和有损(压缩比20:1和25:1且没有明显的品质退化)
Motion JPEG-->Motion Video JPEG
算法与彩色空间无关,处理的彩色图像是单独的彩色分量图像。
JPEG在使用DCT进行有损压缩时,压缩比可调整
#### 图像类型 ####
图像类型指数组数值与像素颜色之间定义的关系。
1.二进制图像
每个像素将取(0、1)中的一个,使用unit8或双精度类型的数组类存储。
2.索引图像
把像素值直接作为RGB调色板下标。在Matlab 7.0中,索引图像包含一个数据矩阵X(unit8、unit16或双精度)和一个颜色映射矩阵map(m×3)
3.灰度图像
通常用一个unit8、unit16或双精度类型的数组来描述,其实质是一个数据矩阵I,数据代表了一定范围内的灰度级。通常0代表黑色,1、255或65635代表白色。
4.多帧图像
在Matlab 7.0中,它是一个四维数组,其中第四维用来指定帧的序号。
3.RGB图像
尺寸为m×n的彩色图像来说,在Matlab 7.0中则存储为一个m×n×3的多维数据数组。
#### 图像类型转换 ####
1.图像颜色浓淡处理(图像抖动)
X = dither( RGB, map )
X = dither( RGB, map, Qm, Qe ):Qm表示沿每个颜色轴反转颜色图的量化的位数,Qe表示颜色空间计算误差的量化位数。如果Qe<Qm,则不进行抖动操作。
2.灰度图像与索引图像互转
[ X, map ] = gray2ind( I, n )
I = ind2gray( X, map )
3.RGB图像转换为灰度图像
I = rgb2gray( RGB )
Newmap = rgb2gray( map )
4.RGB图像与索引图像互转
[ X, map ] = rgb2ind( RGB )
[ X, map ] = rgb2ind( RGB, tol ):均匀量化法,tol去0.0~1.0
[ X, map ] = rgb2ind( RGB, n ):最小方差量化方法,map中包括至少n种颜色
X = rgb2ind( RGB, map ):颜色图近似法
RGB = ind2rgb( X, map )
5.通过阈值化方法将图像转换为二值图像
BW = im2bw( I, level ):level为给定阈值,取值范围为[0,1]
6.通过阈值化方法从灰度图像产生二值图像
X = grayslice( I, n ):均匀量化为伪彩色图像
X = grayslice( I, v ):v为阈值向量
7.将矩阵转换为灰度图像
I = mat2gray( X, [xmin, xmax] )
#### 图像的显示 ####
1.标准图像显示技术
imshow( … )
2.特殊图像现实技术
a.添加颜色条
RGB = imread('saturn.png');
I = rgb2gray(RGB);
h = [1 2 1; 0 0 0; -1 -2 -1];
I2 = filter2(h, I);
imshow(I2,[]),colorbar
b.显示多帧图像阵列
Matlab 7.0支持的多帧图像的文件格式包括HDF和TIFF两种。
%定义一个4维矩阵
mri = uint8(zeros(128,128,1,27));
for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
%多帧显示
montage(mri,map);
c.纹理映射
Matlab 7.0提供了一个对图像进行纹理映射处理的函数warp,使之显示在三维空间中,三维空间的面可以是柱面、球面以及自定义的三维曲目。
[x,y, z] = cyliner;
I = imread( 'test.png' );
warp( x, y, z, I );
########
发表评论
-
如何访问Facebook、Twitter及Youtube等网站
2012-01-20 01:35 28如何访问Facebook、Twitter及Youtube等网站 ... -
批处理不显示dos窗口
2012-01-20 01:35 939批处理不显示dos窗口 2010年07月26日 两段运行 ... -
Office Powershell Cookbook (Office powershell 常见操作)
2012-01-20 01:35 754Office Powershell Cookbook (Off ... -
【转】WMA Lossless Decoder
2012-01-20 01:35 971【转】WMA Lossless Decoder 2010年0 ... -
PHP笔试题2
2012-01-20 01:35 535PHP笔试题2 2011年04月24 ... -
bmp图片格式
2012-01-19 09:25 716bmp图片格式 2010年11月18日 BMP是一种与硬 ... -
BMP文件格式及数据提取
2012-01-19 09:25 810BMP文件格式及数据提取 2011年05月10日 为了给 ... -
BMP文件结构(二)
2012-01-19 09:25 644BMP文件结构(二) 2011年05 ... -
BMP图片是什么格式?
2012-01-19 09:25 995BMP图片是什么格式? 2011 ... -
android 各系统区别(android 1.5- android 3.0)
2012-01-17 02:00 598android 各系统区别(android ... -
WinCE驱动开发问题精华集锦(一)
2012-01-17 02:00 469WinCE驱动开发问题精华 ... -
AS3.0打造随风吹散效果
2012-01-17 02:00 617AS3.0打造随风吹散效果 2010年07月29日 在这 ... -
FPGA的发展策略、产品进程和新方案
2012-01-17 02:00 770FPGA的发展策略、产品进 ... -
flash as3.0笔记2
2012-01-17 02:00 794flash as3.0笔记2 2011年05月11日 例 ... -
各种计算机语言的盘点
2012-01-15 21:16 568各种计算机语言的盘点 2010年01月28日 转自:ht ... -
arm linux 编译环境建立(文摘)
2012-01-15 21:16 669arm linux 编译环境建立(文摘) 2011年02月2 ... -
#ifdef __cplusplus是什么意思
2012-01-15 21:16 636#ifdef __cplusplus是什么意思 2009年1 ... -
计算机概论
2012-01-15 21:16 530计算机概论 2011年04月26日 import 我.认 ... -
探索C++的秘密之详解extern C
2012-01-15 21:15 660探索C++的秘密之详解exte ...
相关推荐
观看,替换和转换 GIF/JPG/PCX/TIF/IFF/LBM/DL/ HAM/BMP/RLE/TGA/MAC/WPG/CUT/ANSI/TXT/IMG/ PBM/CUT/GL/FLI/MPG, 显示极小的图象(370KB) 39,fview10.zip 观看JPEG/GIF/TARGA 文件(72KB) 40,dta22b2.zip 从TGA文件...
程序支持30多种光栅和矢量图形格式,包括 AutoCAD DWG, DXF, DWF, Hewlett-Packard HPGL, PLT, HGL, CGM, SVG, IGES/IGS, STEP/STP, STL, 3DS, TIFF, BMP, JPG, GIF等图像格式,并可以精确的调整图像或转换其它文件...
各种格式图像的读取与显示,包括位图文件(*.BMP)|*.BMP|图形交换格式文件(*.GIF)|*.GIF|PCX文件(*.PCX)|*.PCX|TGA文件(*.TGA)|*.TGA|JPEG文件(*.JPG)|*.JPG|标记图像文件(*.TIF)|*.TIF|所有支持图片
Bmp-位图图像格式(扩展名.bmp)Emf-增强的Windows图元文件图像格式Exif-可交换图像格式Gif-图形交换格式图像格式(扩展名.gif)图标-Windows图标图像格式(扩展名.ico)Jpeg-联合图像专家组图像格式(扩展名.jpg,....
Fresh View 不仅是一款图片查看软件,它还可用来播放视频和音频,同时也支持图像转换、打印,并建立HTML相册,Fresh View非常易用,支持86种图像格式,并且100%免费,没有广告条等信息。 支持的格式: 图像格式...
基于C#的典型图像处理算法 第二章: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; /...
效果惊人(9,177KB) 2,b003.ZIP 一个小巧的显示GIF动画的控件(24KB) 3,b002.ZIP 功能十分强大的一个图像处理控件,可以打印、转换图像格式并有多种处理效果。(包括示例程序)(26KB) 4,crystal.zip...
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R...JPE,JPEG,JPG:JPEG图形文件 JS:javascript源文件 JSP:HTML网页,其中包含有对一个Java servlet...
您可以加载图片(支持 *.bmp *.cur *.gif *.icns *.ico *.jp2 *.jpeg *.jpg *.pbm *.pgm *.png *.ppm *.svg *.svgz * .tga *.tif *.tiff *.wbmp *.webp *.xbm *.xpm) 然后,使用窗口不透明度和事件透明度功能,使用...
a2r103.zip 转换ANSI 屏幕到RIP格式(17KB)<END><br>47,show204.zip GIF/PCX/JPEG 观察器(252KB)<END><br>48,bmp.zip 操纵位图的开发包(78KB)<END><br>49,draw_in.zip 在状态条里显现图(29KB)<END><br>50...
矢量图适于描述由多种比较规则的图形元素构成的图形,但输出图像画面时将转换成位图形式。 图形图像的主要指标有分辨率、色彩数、图形灰度。分辨率有屏幕分辨率和输出分辨率。前者用每英寸行数和列数表示,后者是以...
类型如下:3d Studio Max 文件(.max)Adobe Illustrator 文件(.ai)Bitmap 位图图像(.bmp)COREL Darw 文件(.cdr)Corel Draw 矢量图像文件(.cmx)AutoCAD Drawing 文件(.dwg)AutoCad DX 文件(.dxf)Windows...
多媒体和powerpoint(演示文稿)主要内容 1.... 常见的位图文件格式有:BMP、GIF、JPEG(JPG)、TIFF(TIF)、PCD等。 常见的矢量图文件格式有:cdr、dwg、wmf等。 6. 系统中的录音机一次录音时间为60秒