zoukankan      html  css  js  c++  java
  • OpenCV 将灰度图转为彩色图

    使用opencv将一幅灰度图转为彩色图。

    使用函数:cvtColor();

    1 Mat imgGray= imread("gray.jpg",0);
    2 Mat imgRGB;
    3 cvtColor(imgGray, imgRGB, COLOR_GRAY2RGB);

    说明:输入图像gray.jpg是单通道,8bit图像。

     

    如此简单的过程,还折腾了一会,主要原因是:

    刚开始读入图像写为:Mat imgGray= imread("gray.jpg");结果在调用cvtColor()函数时出错。

    因为此时读入的imgGray不是8bit的单通道图像。imread(const string& filename, int flags=1)函数的第二个参数可设置读入图像的方式,函数默认以RGB三波段形式读入图像,即flags=1,而需读入一幅灰度图则需要设置flags=0,以8bit单通道的形式读入。

    opencv源码中,图像读入方式:

    enum
    {undefined
    /* 8bit, color or not */
    CV_LOAD_IMAGE_UNCHANGED =-1,
    /* 8bit, gray */
    CV_LOAD_IMAGE_GRAYSCALE =0,
    /* ?, color */
    CV_LOAD_IMAGE_COLOR =1,
    /* any depth, ? */
    CV_LOAD_IMAGE_ANYDEPTH =2,
    /* ?, any color */
    CV_LOAD_IMAGE_ANYCOLOR =4,
    /* ?, no rotate */
    CV_LOAD_IMAGE_IGNORE_ORIENTATION =128
    };

    总结如下:

    flag=-1时,8位深度,原通道

    flag=0,8位深度,1通道

    flag=1, 8位深度 ,3通道

    flag=2,原深度,1通道

    flag=3, 原深度,3通道

  • 相关阅读:
    【概念】指针
    【c++】随机数
    组装一台计算机
    模拟打印机
    实现手机的某些功能
    作业
    static 静态内部类
    java中编译报错 ClassCastException 是什么原因,如何处理
    作业1 2
    作业2
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/15698914.html
Copyright © 2011-2022 走看看