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

  • 相关阅读:
    〖Linux〗Kubuntu设置打开应用时就只在打开时的工作区显示
    〖Linux〗Kubuntu, the application 'Google Chrome' has requested to open the wallet 'kdewallet'解决方法
    unity, dll is not allowed to be included or could not be found
    android check box 自定义图片
    unity, ios skin crash
    unity, Collider2D.bounds的一个坑
    unity, ContentSizeFitter立即生效
    类里的通用成员函数应声明为static
    unity, Gizmos.DrawMesh一个坑
    直线切割凹多边形
  • 原文地址:https://www.cnblogs.com/thunder-wu/p/6903408.html
Copyright © 2011-2022 走看看