• Open Source Computer Vision Library

HighGUI讀取與保存圖像

Wikipedia,自由的百科全书

cvLoadImage

從文件中讀取圖像

需要include "highgui.h"

/* 8 bit, color or gray - deprecated, use CV_LOAD_IMAGE_ANYCOLOR */
#define CV_LOAD_IMAGE_UNCHANGED  -1
/* 8 bit, gray */
#define CV_LOAD_IMAGE_GRAYSCALE   0
/* 8 bit unless combined with CV_LOAD_IMAGE_ANYDEPTH, color */
#define CV_LOAD_IMAGE_COLOR       1
/* any depth, if specified on its own gray */
#define CV_LOAD_IMAGE_ANYDEPTH    2
/* by itself equivalent to CV_LOAD_IMAGE_UNCHANGED
   but can be modified with CV_LOAD_IMAGE_ANYDEPTH */
#define CV_LOAD_IMAGE_ANYCOLOR    4
IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
filename 
要被讀入的文件的文件名。
flags 
指定讀入圖像的顏色和深度:
  • 指定的顏色可以將輸入的圖片轉為3通道(CV_LOAD_IMAGE_COLOR)也即彩色(>0), 單通道 (CV_LOAD_IMAGE_GRAYSCALE)也即灰色(=0), 或者保持不變(CV_LOAD_IMAGE_ANYCOLOR)(<0)。
  • 深度指定輸入的圖像是否轉為每個顏色通道每象素8位,(OpenCV的早期版本一樣),或者同輸入的圖像一樣保持不變。
  • 選中CV_LOAD_IMAGE_ANYDEPTH,則輸入圖像格式可以為8位無符號,16位無符號,32位有符號或者32位浮點型。
  • 如果輸入有衝突的標誌,將採用較小的數字值。比如CV_LOAD_IMAGE_COLOR | CV_LOAD_IMAGE_ANYCOLOR 將載入3通道圖。CV_LOAD_IMAGE_ANYCOLOR和CV_LOAD_IMAGE_UNCHANGED是等值的。但是,CV_LOAD_IMAGE_ANYCOLOR有著可以和CV_LOAD_IMAGE_ANYDEPTH同時使用的優點,所以CV_LOAD_IMAGE_UNCHANGED不再使用了。
  • 如果想要載入最真實的圖像,選擇CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR。

函數cvLoadImage從指定文件讀入圖像,返回讀入圖像的指針。目前支持如下文件格式:

  • Windows點陣圖文件 - BMP, DIB;
  • JPEG文件 - JPEG, JPG, JPE;
  • 攜帶型網路圖片 - PNG;
  • 攜帶型圖像格式 - PBM,PGM,PPM;
  • Sun rasters - SR,RAS;
  • TIFF文件 - TIFF,TIF;
  • OpenEXR HDR 圖片 - EXR;
  • JPEG 2000 圖片- jp2。

cvSaveImage

保存圖像到文件

需要include "highgui.h"

int cvSaveImage( const char* filename, const CvArr* image );
filename 
文件名,如果對應的文件已經存在,則將被覆蓋。
image 
要保存的圖像。

函數cvSaveImage保存圖像到指定文件。圖像格式的的選擇依賴於filename的擴展名,請參考cvLoadImage。只有8位單通道或者3通道(通道順序為'BGR' )可以使用這個函數保存。如果格式,深度或者通道不符合要求,請先用cvCvtScale 和cvCvtColor轉換;或者使用通用的cvSave保存圖像為XML或者YAML格式。

Views
個人工具