opencv2 的学习我们从读取图像开始。

imread

  1. 头文件: #include "opencv2/highgui/highgui.hpp" //imread()
    #include "opencv2/core/core.hpp" //Class Mat
  2. 函数格式: Mat imread(const string& filename, int flags=1 )
  3. 返回值: 如果读取失败,则Mat::data==NULL;成功,返回Mat,在下一篇文章中我们将初步介绍Mat
  4. 参数说明:

    • filename: 待读取图像的文件名。
    • flags: 说明按何种颜类型读取图像,有效的值为:
                enum{
                // 8bit, color or not
                IMREAD_UNCHANGED  =-1,
                // 8bit, gray
                IMREAD_GRAYSCALE  =0,
                // ?, color
                IMREAD_COLOR      =1,
                // any depth, ?
                IMREAD_ANYDEPTH   =2,
                // ?, any color
                IMREAD_ANYCOLOR   =4
                };       

例子

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    if (argc != 2)
    {
        cout << " Wrong Arguments!\n" << endl;
        return -1;
    }

    Mat image = imread(argv[1], IM_COLOR);  // Read the file

    if (!image.data)                              // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }

        return 0;
}

延伸阅读--色彩深度

摘自 wikipedia
色彩深度计算机图形学领域表示在位图或者视频帧缓冲区中储存1像素的颜色所用的位数,它也称为位/像素(bpp)。色彩深度越高,可用的颜色就越多。

色彩深度是用“n位颜色”(n-bit colour)来说明的。若色彩深度是n位,即有2n种颜色选择,而储存每像素所用的位数就是n。常见的有:

1位:2种颜色,单色光,黑白二色,用于compact Macintoshes。
2位:4种颜色,CGA,用于gray-scale早期的NeXTstation及color Macintoshes。
3位:8种颜色,用于大部分早期的电脑显示器。
4位:16种颜色,用于EGA及不常见及在更高的分辨率的VGA标准,color Macintoshes。
5位:32种颜色,用于Original Amiga chipset。
6位:64种颜色,用于Original Amiga chipset。
8位:256种颜色,用于最早期的彩色Unix工作站,低分辨率的VGA,Super VGA,AGA,color Macintoshes。
    灰阶,有256种灰色(包括黑白)。若以24位模式来表示,则RGB的数值均一样,例如(200,200,200)。
12位:4,096种颜色,用于部分硅谷图形系统,Neo Geo,彩色NeXTstation及Amiga系统于HAM mode。
16位:65,536种颜色,用于部分color Macintoshes。
24位:16,777,216种颜色,真彩色,能提供比肉眼能识别更多的颜色,用于拍摄照片。
30/36/48位:全彩。

另外有高动态范围影像(High Dynamic Range Image),这种影像使用超过一般的256色阶来储存影像,通常来说每个像素会分配到32+32+32个bit来储存颜色资讯,也就是说对于每一个原色都使用一个32bit的浮点数来储存.

参考文献

  1. The OpenCV Reference Manual Release 2.4.9.0。
  2. The OpenCV Tutorials Release 2.4.9.0。
  3. Wikipedia

epsilon
136 声望6 粉丝

学会仰望心灵的星空


引用和评论

0 条评论