• openCV学习——一、Mat类


    一、Mat数据类型

    在以下两个场景中使用 OpenCV 时,我们必须事先知道矩阵元素的数据类型:

    • 使用 at 方法访问数据元素的时候要指明数据类型
    • 做数值运算的时候,比如究竟是整数除法还是浮点数除法。

    cv::Mat 类的对象有一个成员函数 type() 用来返回矩阵元素的数据类型,返回值是 int 类型,不同的返回值代表不同的类型:

     C1C2C3C4
    CV_8U 0 8 16 24
    CV_8S 1 9 17 25
    CV_16U 2 10 18 26
    CV_16S 3 11 19 27
    CV_32S 4 12 20 28
    CV_32F 5 13 21 29
    CV_64F 6 14 22 30

    C1, C2, C3, C4 指的是通道(Channel)数,比如灰度图像只有 1 个通道,是 C1;JPEG格式 的 RGB 彩色图像就是 3 个通道,是 C3;PNG 格式的彩色图像除了 RGB 3个通道外,还有一个透明度通道,所以是 C4。数值7 是用来给用户自定义:

    1 #define CV_USRTYPE1 7

    在已知通道数和每个通道数据类型的情况下,指定给 at 方法的数据类型如下表所示:

      C1 C2 C3 C4
    uchar uchar cv::Vec2b cv::Vec3b  
    short short cv::Vec2s cv::Vec3s  
    int int cv::Vec2i cv::Vec3i  
    float float cv::Vec2f cv::Vec3f cv::Vec6f
    double double cv::Vec2d cv::Vec3d cv::Vec6d

    附:数据类型及取值范围:

    数值具体类型取值范围
    CV_8U 8 位无符号整数 (0…..255)
    CV_8S 8 位符号整数 (-128…..127)
    CV_16U 16 位无符号整数 (0……65535)
    CV_16S 16 位符号整数 (-32768…..32767)
    CV_32S 32 位符号整数 (-2147483648……2147483647)
    CV_32F 32 位浮点数 (-FLT_MAX ………FLT_MAX,INF,NAN)
    CV_64F 64 位浮点数 (-DBL_MAX ……….DBL_MAX,INF,NAN)
  • 相关阅读:
    (十)条件判断
    (九)字符处理命令
    (八)awk命令
    (六)环境变量配置文件
    (七)grep命令行提取符号
    Ⅶ 类模板与STL编程 ②
    Ⅵ 虚函数与多态性
    Ⅴ 运算符重载
    Ⅳ 继承与派生②
    Ⅳ 继承与派生①
  • 原文地址:https://www.cnblogs.com/ivan-count/p/8899794.html
Copyright © 2020-2023  润新知