open cv中的图像格式

时间:2015-09-17 16:36:23

标签: c++ opencv

我需要使用opencv和c ++以不同的格式保存图像。 有一个显示图像的代码,并在按下键时退出。 jpeg中的图像显示的可能格式是什么?

#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 <<" Usage: display_image ImageToLoadAndDisplay" << endl;
    return -1;
    }

    Mat image;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR);  

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

    namedWindow( "Display window", WINDOW_AUTOSIZE );
    imshow( "Display window", image );                 

    waitKey(0);                                          
    return 0;
    }

1 个答案:

答案 0 :(得分:0)

根据OpenCV doc

函数imread从指定文件加载图像并返回它。如果无法读取图像(由于文件丢失,权限不正确,格式不受支持或无效),该函数将返回一个空矩阵(Mat::data==NULL)。目前,支持以下文件格式:

  • Windows位图 - * .bmp,*。.dib(始终支持)
  • JPEG文件 - * .jpeg,* .jpg,*。jpe(请参阅“注释”部分)
  • JPEG 2000文件 - * .jp2(参见“注释”部分)
  • 便携式网络图形 - * .png(请参阅“注释”部分)
  • WebP - * .webp(参见“备注”部分)
  • 便携式图像格式 - * .pbm,* .pgm,*。ppm * .pxm,* .pnm(始终支持)
  • Sun rasters - * .sr,* .ras(始终支持)
  • TIFF文件 - * .tiff,* .tif(参见注释部分)
  • OpenEXR图像文件 - * .exr(参见“注释”部分)
  • Radiance HDR - * .hdr,* .pic(始终支持)

注意

  • 该功能通过内容而不是文件扩展名确定图像的类型。
  • 在Microsoft Windows * OS和MacOSX *上,默认使用附带OpenCV映像(libjpeg,libpng,libtiff和libjasper)的编解码器。因此,OpenCV始终可以读取JPEG,PNG和TIFF。在MacOSX上,还可以选择使用本机MacOSX图像阅读器。但请注意,由于MacOSX中嵌入了色彩管理,目前这些原生图像加载器会为图像提供不同的像素值。
  • 在Linux *,BSD风格和其他类Unix开源操作系统上,OpenCV寻找随操作系统映像提供的编解码器。安装相关软件包(不要忘记开发文件,例如,“Debian *和Ubuntu *中的”libjpeg-dev“)以获得编解码器支持或打开CMake中的OPENCV_BUILD_3RDPARTY_LIBS标志。

注意

在彩色图像的情况下,解码图像将以B G R顺序存储通道。