roo

programmer的人生才刚刚开始……

导航

图像处理

 

    常用图像格式

  1. BMP

    Microsoft Windows所定义的文件格式,最早应用在微软公式的Micosoft Windows窗口系统中。具有一下特点:

    • 只存放一幅图像;
    • 只能存储单色、16色、256色和真彩色(RGB4种图像数据;
    • 图像数据有压缩和非压缩两种处理方式;
    • 调色板的数据存储格式不固定,与文件头的某些具体参数(如像素位bbp、压缩算法等)密切相关。其中,Windows设有RLE4RLE8两种压缩方式。

     

    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;

     

  2. GIFGraphics Interchanger Format

    最初由CompuServe公司在网络中用于在线传输图像数据。经常用于网页的动画、透明等特9技制作。具有一下特点:

    • 具有多元化结构,能够存储多张图像;
    • 调色板具有通用调色板和局部调色板之分;
    • 采用了LZW压缩法;
    • 图像数据一个byte存储一个pixel
    • 图像数据具有顺序排列和交叉排列两种方式;
    • 最多只能存储256色图像。

     

    GIF图像文件结构一般由表头、通用调色板、图像数据区(可选)以及4个补充区(可选)组成。

     

  3. TIFTag Image File Format

    现有图像格式中最复杂的一种,由Aldus和微软开发设计,提供了各种信息存储的完备手段。其主要特点:

    • 应用指针实现多幅图像存储;
    • 除规定表头必须在文件前端,标记信息区和图像数据库可随意存放;
    • 接受RBB之外的CMYKYcbCr等多种图像模式
    • 可存储多份调色板数据;
    • 提供多种不同的数据压缩方法;
    • 图像数据可分割成几部分分别存档。

     

    TIF图像文件主要由表头、标识信息区和图像数据区三部分组成。

     

  4. JPEGJoint Photographic Experts Group

    全称为“连续色调静态图像的数字压缩和编码”。

    JPEG标准只是定义了一个规范的编码数据流,并没有规定图像数据文件的格式。其特点有:

    • 既可用于灰度图像又可用于彩色图像
    • 采用离散余弦变换、量化、行程与哈夫曼编码等技术
    • 支持无损(压缩比2:1)和有损(压缩比20:125:1且没有明显的品质退化)
    • Motion JPEG-->Motion Video JPEG
    • 算法与彩色空间无关,处理的彩色图像是单独的彩色分量图像。
    • JPEG在使用DCT进行有损压缩时,压缩比可调整

     

    图像类型

    图像类型指数组数值与像素颜色之间定义的关系。

  5. 二进制图像

    每个像素将取(01)中的一个,使用unit8或双精度类型的数组类存储。

  6. 索引图像

    把像素值直接作为RGB调色板下标。在Matlab 7.0中,索引图像包含一个数据矩阵Xunit8unit16或双精度)和一个颜色映射矩阵mapm×3

  7. 灰度图像

    通常用一个unit8unit16或双精度类型的数组来描述,其实质是一个数据矩阵I,数据代表了一定范围内的灰度级。通常0代表黑色,125565635代表白色。

  8. 多帧图像

    Matlab 7.0中,它是一个四维数组,其中第四维用来指定帧的序号。

  9. RGB图像

    尺寸为m×n的彩色图像来说,在Matlab 7.0中则存储为一个m×n×3的多维数据数组。

     

    图像类型转换

  10. 图像颜色浓淡处理(图像抖动)
    • X = dither( RGB, map )
    • X = dither( RGB, map, Qm, Qe )Qm表示沿每个颜色轴反转颜色图的量化的位数,Qe表示颜色空间计算误差的量化位数。如果QeQm,则不进行抖动操作。
  11. 灰度图像与索引图像互转
    • [ X, map ] = gray2ind( I, n )
    • I = ind2gray( X, map )
  12. RGB图像转换为灰度图像
    • I = rgb2gray( RGB )
    • Newmap = rgb2gray( map )
  13. RGB图像与索引图像互转
    • [ X, map ] = rgb2ind( RGB )
    • [ X, map ] = rgb2ind( RGB, tol ):均匀量化法,tol0.01.0
    • [ X, map ] = rgb2ind( RGB, n ):最小方差量化方法,map中包括至少n种颜色
    • X = rgb2ind( RGB, map ):颜色图近似法
    • RGB = ind2rgb( X, map )
  14. 通过阈值化方法将图像转换为二值图像
    • BW = im2bw( I, level )level为给定阈值,取值范围为[0,1]
  15. 通过阈值化方法从灰度图像产生二值图像
    • X = grayslice( I, n ):均匀量化为伪彩色图像
    • X = grayslice( I, v )v为阈值向量
  16. 将矩阵转换为灰度图像
    • I = mat2gray( X, [xmin, xmax] )

     

    图像的显示

  17. 标准图像显示技术
    • imshow( )
  18. 特殊图像现实技术
    1. 添加颜色条

    RGB = imread('saturn.png');

    I = rgb2gray(RGB);

    h = [1 2 1; 0 0 0; -1 -2 -1];

    I2 = filter2(h, I);

    imshow(I2,[]),colorbar

     

    1. 显示多帧图像阵列

    Matlab 7.0支持的多帧图像的文件格式包括HDFTIFF两种。

    %定义一个4维矩阵

    mri = uint8(zeros(128,128,1,27));

    for frame=1:27

    [mri(:,:,:,frame),map] = imread('mri.tif',frame);

    end

    %多帧显示

    montage(mri,map);

     

    1. 纹理映射

    Matlab 7.0提供了一个对图像进行纹理映射处理的函数warp,使之显示在三维空间中,三维空间的面可以是柱面、球面以及自定义的三维曲目。

    [x,y, z] = cyliner;

    I = imread( 'test.png' );

    warp( x, y, z, I );

     

posted on 2007-06-09 04:48  roo  阅读(1272)  评论(0)    收藏  举报