zoukankan      html  css  js  c++  java
  • OpenCV 图像处理学习笔记(一)

    解读IplImage结构

    typedef struct _IplImage
    {
    int nSize;                   
    /* IplImage大小 */
    int ID;                        
    /* 版本 (=0)*/
    int nChannels;          
    /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */
    int alphaChannel;
    /* 被OpenCV忽略 */
    int depth;
    /* 像素的位深度: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U,
    IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F 可支持 */
    char colorModel[4];
    /* 被OpenCV忽略 */
    char channelSeq[4];
    /* 同上 */
    int dataOrder;
    /* 0 - 交叉存取颜色通道, 1 - 分开的颜色通道.
    cvCreateImage只能创建交叉存取图像 */
    int origin;
    /* 0 - 顶—左结构,1 - 底—左结构 (Windows bitmaps 风格) */
    int align;
    /* 图像行排列 (4 or 8). OpenCV 忽略它,使用 widthStep 代替 */
    int width;
    /* 图像宽像素数 */
    int height;
    /* 图像高像素数*/
    struct _IplROI *roi;
    /* 图像感兴趣区域. 当该值非空只对该区域进行处理 */
    struct _IplImage *maskROI;
    /* 在 OpenCV中必须置NULL */
    void *imageId;
    /* 同上*/
    struct _IplTileInfo *tileInfo;
    /*同上*/
    int imageSize;
    /* 图像数据大小(在交叉存取格式下imageSize=image->height*image->widthStep),单位字节*/
    char *imageData;
    /* 指向排列的图像数据 */
    int widthStep;
    /* 排列的图像行大小,以字节为单位 */
    int BorderMode[4];
    /* 边际结束模式, 被OpenCV忽略 */
    int BorderConst[4];
    /* 同上 */
    char *imageDataOrigin;
    /* 指针指向一个不同的图像数据结构(不是必须排列的),是为了纠正图像内存分配准备的 */
    }
    IplImage;

    图像的通道指是什么?图像的通道指的是什么?是不是灰度图的通道数为1,彩色图的通道为3?

    正确!

    基本上,描述一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道。
    如果一个像素点,有RGB三种颜色来描述它,就是三通道。

    (2) 对于2通道和4通道如何看待?哪位帮忙解释一下?

    两通道暂时没见过,估计只是编程的方便吧!windows的bmp有时候是一个四通道图像,R、G、B加上一个A通道,表示透明度

    是的,最后这个,一般叫做alpha通道,表示透明度的。

    4通道通常为RGBA,在某些处理中可能会用到。

    重要结构元素说明:

    depth和nChannels

    nChannels是通道数,为1,2,3,4

    depth代表颜色深度,使用的是一下定义的宏

    depth的宏定义:
    IPL_DEPTH_8U,无符号8bit整数(8u)
    IPL_DEPTH_8S,有符号8bit整数(8s)
    IPL_DEPTH_16S,有符号16bit整数(16s)
    IPL_DEPTH_32S,有符号32bit整数(32s)
    IPL_DEPTH_32F,32bit浮点数,单精度(32f)
    IPL_DEPTH_64F,64bit浮点数,双精度(64f)

     

  • 相关阅读:
    有种感觉叫失去才知道珍惜
    Alternativa 3D Series – Tutorial 1 – Getting Started
    ruby中使用MiniMagick处理图片
    RMagick动态生成图片
    Rails Model验证之强大
    Rails验证信息的中文化
    Prawn:Ruby生成PDF更简捷的选择
    ruby gem相关命令使用
    Ruby Gems(1)–简要介绍和ruby on rails安装
    Rails安装
  • 原文地址:https://www.cnblogs.com/haoyuanyuan/p/3480784.html
Copyright © 2011-2022 走看看