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)

     

  • 相关阅读:
    Android性能测试工具APT使用指南
    android.app.Activity阅读摘要,有时候会不会需要保持一些现场数据呢? 想让系统帮你退出到后台或者挂掉前做些前置保持工作吗,重点参考吧:
    OkHttp+Stetho+Chrome调试android网络部分
    HLG2179 组合(dfs水水更健康)
    HLG 1494网络 (求的割点数目)可做模板
    hdu2586&&poj1330 求点间最短距&&最近公共祖先(在线&&离线处理):::可做模板
    hdu 2586
    poj分类
    poj3748 位运算 bitset
    C++ bitset类的使用与简介
  • 原文地址:https://www.cnblogs.com/haoyuanyuan/p/3480784.html
Copyright © 2011-2022 走看看