天天看点

OpenCV-图像的表示(java版)

@​​TOC​​

前言

前面了解了图像的创建,下面了解下图像的表示。这个对于图像的操作也是至关重要的。

1.图像的表示

这个在上一节中已经大概提了一下,说白了。图像由矩阵,矩阵元素值,通道组成。

 一般来说,灰度图用 2 维矩阵表示,彩色图像用 3 维矩阵(M × N × 3)表示。对于图像显示来说,目前大部分设备都是用无符号 8 位整数(类型为 CV_8U)表示像素亮度。

    图像数据在计算机内存中的存储顺序为以图像最左上点(也可能是最左下点)开始,存储如下图所示

l0 0 l0 1 ... l0 N-1
l1 0 l1 1 ... l1 N-1
... ... ... ...
lM-1 0 lM-1 1 ... lM-1 N-1

     表示第 行 列的像素值。如果是多通道图像,比如 RGB 图像,则每个像素用三个字节表示。在 OpenCV 中,RGB 图像的通道顺序为 BGR ,存储如下

...
...
... ... ... ... ... ... ...

2.示例

执行下面的示例

Mat mat = new Mat(5,5, CvType.CV_8UC3,new Scalar(0,255,0));
        System.out.println(mat.dump());