基于matlab机器视觉的完全自学手册——第一章

基于matlab机器的视觉的完全自学手册——第一章

  • 一、图像基础
    • 1.数字图像处理的主要内容
    • 图像的表示方法
    • 图像的数据结构
    • 图像文件格式
  • 二、图像处理基础
    • 图像类型转换

一、图像基础

1.数字图像处理的主要内容

  1. 图像运算与变换
    运算:主要以图像像素为对象,点运算、代数运算以及逻辑运算。
    变换:图像像素的空间关系的改变(变亮)
  2. 图像增强
    提高图像质量,主要方法:灰度变换、直方修正、图像平滑、图像锐化等。
  3. 图像复原
    提高图像质量,根据图像品质下降过程建立合理的降质模型,采用滤波的方法,恢复或重建原来图像。
  4. 图像的锐化及边缘检测
    补偿图像轮廓,增强图像的边缘及灰度跳变的部分。
  5. 图像分割
    分成区域,提取目标部分。
  6. 图像编码压缩

图像的表示方法

  1. 二进制图像
    像素值非零即一
  2. 灰度图像
    每个像素在[0,255]取值(8位无符号整数),即黑白占比。
  3. RGB图像
  4. 索引图像
    数据矩阵X + 颜色映射矩阵map

图像的数据结构

  1. 矩阵
  2. 链码:用于描述图形边界。4向链码和8向链码。
  3. 拓扑结构:4-领域、对角领域、8-邻域。
  4. 关系结构:串描述与树描述

图像文件格式

  1. BMP:支持RGB、索引颜色、灰度、位图颜色。不支持任何压缩,所占空间很大。
  2. GIF:支持无损压缩,只能显是256色
  3. JPEG:有损压缩,当编辑和重新保存时,源氏图片数据质量下降,且是累积性。
  4. Tiff

二、图像处理基础

图像类型转换

  1. RGB转灰度图 (rgb2gray())
    RGB图像转灰度图rgb2gray(I)
    颜色映射表map转灰度图rgb2gray(map)
    问题:.png图没有映射表时,该如何通过map转换。

  2. RGB转索引图 (rgb2ind())
    方法:均匀量化法、最小方差量化发、颜色表近似法

    [X,map] = rgb2ind(I,tol);  
    //均匀量化法      tol取值0.0~1.0        map包含的颜色(floor(1.tol)+1)^2
    [X,map] = rgb2ind(I,N);
    // 最小方差量化法     N为map最少的颜色个数
    X = rgb2ind(I,map)
    // 对RGB中最相近的颜色进行匹配生成颜色映射表map
    
  3. 灰度图转索引图(gray2ind() 或 grayslice())

    [X,map] = gray2ind(I,n)
    

    二值图可视为灰度级只有2的灰度图像,因此该函数可以将二值图像转换为索引图象,灰度图像的n默认为64,而二值图像n默认为2

    X = grayslice(I,n);
    // 将灰度图像均匀量化为n个等级
    X = grayslice(I,v);
    //将灰度图像按照阈值矢量v进行划分,v的取值在0~1之间
    

    显示图像时,需利用jet()函数,生成一个颜色映射表,给图像对应的像素点加上颜色。

  4. 索引图转灰度图(ind2gray())

    I=ind2gray(x,map);
    
  5. 索引图转RGB图(ind2rgb())
    图像视觉上完全一致,数据形式上有所不同。

    RGB=ind2rgb(X,map);
    
  6. 二值图像的转换
    二值图像只包含了0和1,首先必须制定规则,那些数据变成0,那些数据变成1。利用阈值法,确定一个阈值,小于阈值即设定成0,大于则设定成1。
    包含了灰度图、索引图、RGB图转二值图像。
    a. 灰度图转二值图像

    BW=im2bw(I,level);
    // level为阈值参数,取值[0,1];
    亮的部分会转换为白色,暗的部分会转换为黑色;
    

    b. 索引图转二值图像

    BW=im2bw(X,map,level);
    

    c. RGB图转二值图像

    BW=im2bw(X,level);
    

    二值图像可视为灰度为2的灰度图,因此,黑白分布仅与亮度有关,与颜色无关。

  7. 数值矩阵转灰度图(mat2gray())

    	I=mat2gray(X,[xmin,xmax]);
    	//xmax和xmin在默认情况下时数据矩阵中的最大值和最小值。
    	//小于xmin为0,大于xmax为1
    

你可能感兴趣的:(基于matlab机器视觉的完全自学手册——第一章)