zoukankan      html  css  js  c++  java
  • 图像与大数组类型

      动态可变存储

      大数组类型中最主要的是,cv::Mat,可以看成是OpenCV库, C++ 实现的核心内容;OpenCV库的绝大多数函数,或是cv::Mat的成员,或是以cv::Mat作为参数,或是返回值是cv::Mat,或是其一或是所有; cv::Mat一般用于任意维度的稠密数组,这个稠密的意思是与数组单元相对应,都有一个数据存放在内存,哪怕这个数组单元存放的是零;大多数的图像存储稠密数组;

      使用稀疏数组的是直方图,cv::SparseMat

      The cv::Mat 类,多维稠密数组

      cv::Mat类可以作为任意维度的数组使用,其数据可以看做是以按照栅格扫描顺序存储的n维数组;在一维数组中,元素是按顺序排列的;在一个二维数组中,数据按行组织的,每一行也按顺序排列;对于三维数组,所有的通道都被行填充,每一个通道同样按顺序排列;

      所有的矩阵都包含,一个表示它所包含数组类型的元素flag,一个表示其维度的元素dims,分别表示行列的数目的元素rows和cols(dims不大于2),一个指示数据真正存储位置的data指针,一个表示该内存区域有多少个引用的refcount元素;

      cv::Mat中的元素可以是一个简单的数字,也可以是多个数字,在包含多个数字的时候,它就被称为多通道数组;

      构造一个数组

      可以用cv::Mat实例化一个对象,构造一个数组,该数组没有大小也没有数据类型,可以利用对象调用Create()函数,参数为行、列、类型来分配数据;

    cv::Mat m;
    // Create data area for 3 rows and 10 columns of 3-channel 32-bit floats
    m.create( 3, 10, CV_32FC3 );
    // Set the values in the 1st channel to 1.0, the 2nd to 0.0, and the 3rd to 1.0
    m.setTo( cv::Scalar( 1.0f, 0.0f, 1.0f ) );

      等同于

    cv::Mat m( 3, 10, CV_32FC3, cv::Scalar( 1.0f, 0.0f, 1.0f ) );
  • 相关阅读:
    作业之 抽屉的实现
    Python数字
    Python字符串
    Python变量
    Python生成0到9的随机数
    Python 中is和==的区别?
    整理控|四象限系列电脑桌面壁纸分享一波
    Jmeter系列之接口自动化实战
    Jmeter系列之数据库操作
    Jmeter系列之接口断言
  • 原文地址:https://www.cnblogs.com/GoldenEllipsis/p/12973412.html
Copyright © 2011-2022 走看看