数字图像处理

数字图像处理笔记

Posted by 袁平 on October 22, 2018

前言

数字图像处理笔记


正文


可以使用Utrapdit软件查看图片的ASIIC值(可以看任何文件的ASIIC值)

一. 第一讲 数字图像处理概述

  1. 图形和图像的区别:
  1. 图形: 一条指令; 比如一条直线的表示
  2. 图像: 大矩阵, 里面的数据是每一点的颜色值
  1. 宽高相乘就是图像的像素

  2. 图像空间分辨率和灰度级分辨率(表用多少位表示)

  3. jpg是压缩格式; 网上的视屏也是经过压缩后传输再解压缩播放的


二. 第二讲 图像存储格式

  1. 单色图像(黑白图像): 一位;

  2. 8位索引图像: 有一个颜色表和一个像颜色表的序号的数据矩阵

  1. 8位索引灰度图像: 颜色表中的RGB相等
  2. 8位伪彩色索引图像: 颜色表中的RGB值不等
  1. 彩色图像: 分为伪彩色和真彩色(每个像素24位, RGB各占8位);

  2. BMP, GIF, TIF, JPEG

    1. GIF: 主要用于不同平台上交流和传输, 而不是作为文件的存储格式
    2. TIF: 最复杂

三. 第三讲 BMP位图文件的存储格式

  1. BMP文件组成:
  1. 位图文件头结构: BITMAPFILEHEADER
  2. 位图信息头结构: BITMAPINFOHEADER
  3. 位图颜色表: RGBQUAD(有的可能没有颜色表, 具体有没有, 参见第二讲)
  4. 位图像素数据
  1. BMP文件头: 14个字节
typedef struct tagBITMAPFILEHEADER
{
    WORD bfType; // BM: BMP文件标识(前两个字节), 一个字节是B, 一个字节是M
    DWORD bfSize; // 文件大小
    WORD bfReserved1; // 0
    WORD bfReserved2; // 0
    DWORD bfOffBits; // 位图数据的起始位置
} BITMAPFILEHEDADER; 
  1. BMP信息头结构: 40个字节
typedef struct tagBITMAPINFOHEADER
{
    DWORD biSize; // 本结构的大小: 40个字节
    LONG biWidth; // 位图宽度, 像素为单位
    LONG biHeight; // 位图高度, 像素为单位
    WORD biPlanes; // 位平面数, 是标准的一般是1
    WORD biBitCount; // 每个像素所需的位数
    DWORD biCompression; // 位图压缩类型: BMP位图一般不压缩, 取0
    DWORD biSizeImage; // 位图大小
    LONG biXpelsPerMeter; // 水平分辨率(像素点/米)
    LONG biYPelsPerMeter; // 垂直分辨率(像素点/米)
    DWORD biCIrUsed; // 颜色数: 如果是标准颜色, 如16, 24, 256等位颜色, 则是0; 如果是自己定义, 则需要将颜色数写在这
    DWORD biCIrImportant; // 重要的颜色数
} BITMAPINFOHEADER;
  1. 颜色表:
typedef struct tagRGBQUAD 
{
    BYTE rgbBlue; // 蓝色
    BYTE rgbGreen; // 绿色
    BYTE rgbRed; // 红色
    BYTE rgbReserved; // 保留字节; 0
} RGBQUAD;
  1. 位图信息 – BITMAPINFO结构: 图像显示时作为参数传入函数
struct tagBITMAPINFO
{
    BITMAPINFOHEADER bmiHeader;
    RGBQUAD bmiColors[1]; // 颜色表(上的第一项)
} BITMAPINFO;

四. 几何变换基础

讲解平移, 缩放, 旋转, 镜像等的矩阵和原理