• [转]Mat 常见属性


     

    转:http://blog.csdn.net/hyqsong/article/details/46367765

    标签: Mattype
     

    问题:

    如果Mat 中想存小数,那么声明是就要用CV_32FC1等浮点数的类型,并且在访问像素的时候,指向每一行(i行)的指针:

    不再是: uchar *data=src.ptr<uchar>(i); 了 (uchar 是0~255的无符号整数)

    而是用:float *data =src.ptr<float>(i)。(以前不懂也没注意这个,程序一直出错)。

    PS:因为再写颜色相关图的程序,需要保存一个掩码mark 矩阵,其中每个元素存一个【0~1】的权重,用以前的遍历图片像素的代码改的,结果总不对,后来才发现是新创建的矩阵的元素用的 uchar ,是无符号整型,不能存小数的,才恍然大悟,也才有了这篇blog,内容比较简单,仅供自己学习,也供有需求的人参考。

    以下参考自:http://www.cnblogs.com/wangguchangqing/p/4016179.html

    TYPE表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为CV_(位数)+(数据类型)+(通道数)。具体的有以下值

    CV_8UC1 CV_8UC2 CV_8UC3 CV_8UC4
    CV_8SC1 CV_8SC2 CV_8SC3 CV_8SC4
    CV_16UC1 CV_16UC2 CV_16UC3 CV_16UC4
    CV_16SC1 CV_16SC2 CV_16SC3 CV_16SC4
    CV_32SC1 CV_32SC2 CV_32SC3 CV_32SC4
    CV_32FC1 CV_32FC2 CV_32FC3 CV_32FC4
    CV_64FC1 CV_64FC2 CV_64FC3 CV_64FC4
    • 这里U(unsigned integer)表示的是无符号整数,S(signed integer)是有符号整数,F(float)是浮点数。 
      例如:CV_16UC2,表示的是元素类型是一个16位的无符号整数,通道为2. 
      C1,C2,C3,C4则表示通道是1,2,3,4 
      type一般是在创建Mat对象时设定,如果要取得Mat的元素类型,则无需使用type,使用下面的depth
    • depth 
      矩阵中元素的一个通道的数据类型,这个值和type是相关的。例如 type为 CV_16SC2,一个2通道的16位的有符号整数。那么,depth则是CV_16S。depth也是一系列的预定义值, 
      将type的预定义值去掉通道信息就是depth值: 
      CV_8U CV_8S CV_16U CV_16S CV_32S CV_32F CV_64F
    • elemSize 
      矩阵一个元素占用的字节数,例如:type是CV_16SC3,那么elemSize = 3 * 16 / 8 = 6 bytes
    • elemSize1 
      矩阵元素一个通道占用的字节数,例如:type是CV_16CS3,那么elemSize1 = 16  / 8 = 2 bytes = elemSize / channels

    Mat的常见属性

    • data  uchar型的指针。Mat类分为了两个部分:矩阵头和指向矩阵数据部分的指针,data就是指向矩阵数据的指针。
    • dims 矩阵的维度,例如5*6矩阵是二维矩阵,则dims=2,三维矩阵dims=3.
    • rows  矩阵的行数
    • cols   矩阵的列数
    • size 矩阵的大小,size(cols,rows),如果矩阵的维数大于2,则是size(-1,-1)
    • channels 矩阵元素拥有的通道数,例如常见的彩色图像,每一个像素由RGB三部分组成,则channels = 3
  • 相关阅读:
    【Linux】在Linux上,使用校园出校器拨号的一个脚本。
    【Android】编译CM10.1遇到的错误解决方案
    【Android】编译CM10遇到的错误解决方案
    【Android】CM在repo中使用local manifest
    一个网站的诞生 MagicDict开发总结1 [首页]
    我记录网站综合系统 1.6发布
    带有ToolTip的ListBox
    字符串的宽度
    .NET开发的文本编辑器,(又发明轮子了,VB代码,不喜误入)
    捕获输入内容
  • 原文地址:https://www.cnblogs.com/Crysaty/p/6549314.html
Copyright © 2020-2023  润新知