zoukankan      html  css  js  c++  java
  • OpenCV入门(2)——基础

    Mat基本图像容器:

    基本上讲 Mat 是一个类,由两个数据部分组成:矩阵头包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵根据所选存储方法的不同矩阵可以是不同的维数的指针

    • OpenCV函数中输出图像的内存分配是自动完成的(如果不特别指定的话)。
    • 使用OpenCV的C++接口时不需要考虑内存释放问题。
    • 赋值运算符和拷贝构造函数( ctor )只拷贝信息头。
    • 使用函数 clone() 或者 copyTo() 来拷贝一副图像的矩阵。

    存储方法:

    这里讲述如何存储像素值。需要指定颜色空间数据类型。颜色空间是指对一个给定的颜色,如何组合颜色元素以对其编码。最简单的颜色空间要属灰度级空间,只处理黑色和白色,对它们进行组合可以产生不同程度的灰色。

    “颜色空间”——红色、绿色和蓝色,有时为了表示透明颜色也会加入第四个元素 alpha (A)。

    有很多的颜色系统,各有自身优势:

    • RGB是最常见的,这是因为人眼采用相似的工作机制,它也被显示设备所采用。
    • HSV和HLS把颜色分解成色调、饱和度和亮度/明度。这是描述颜色更自然的方式,比如可以通过抛弃最后一个元素,使算法对输入图像的光照条件不敏感。
    • YCrCb在JPEG图像格式中广泛使用。
    • CIE L*a*b*是一种在感知上均匀的颜色空间,它适合用来度量两个颜色之间的 距离 。

    每个组成元素都有其自己的定义域,取决于其数据类型。如何存储一个元素决定了我们在其定义域上能够控制的精度。

    显式地创建一个 Mat 对象

    • Mat() 构造函数

          Mat M(2,2, CV_8UC3, Scalar(0,0,255)); //行数,列数, Scalar 是个short型vector。指定这个能够使用指定的定制化值来初始化矩阵。
          cout << "M = " << endl << " " << M << endl << endl;   
      
    Demo image of the matrix output

    整理自——

    http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/core/mat%20-%20the%20basic%20image%20container/mat%20-%20the%20basic%20image%20container.html#matthebasicimagecontainer

  • 相关阅读:
    结对编程附加题、团队作业2、团队作业3评分标准
    【评分】集美大学软件工程1413班工程项目管理结对编程1-模块化
    【评分】集美大学软件工程1413班工程项目管理第0次作业——读后感
    第13周-网络
    第12周-流与文件
    第11周-多线程
    第10周-异常与多线程
    第九周-异常
    第08周-集合与泛型
    第7周-集合
  • 原文地址:https://www.cnblogs.com/thunder-wu/p/6903408.html
Copyright © 2011-2022 走看看