cvLoadImage是一個計算機函式,用途是圖像處理,函式原型是IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR )。
基本介紹
- 中文名:cvLoadImage
- 類別:程式語言
- 歸類:函式
- 用處:圖像處理
詳細介紹,函式使用方法,函式信息,
詳細介紹
filename :要被讀入的檔案的檔案名稱(包括後綴);
flags :指定讀入圖像的顏色和深度:
指定的顏色可以將輸入的圖片轉為3通道(CV_LOAD_IMAGE_COLOR), 單通道 (CV_LOAD_IMAGE_GRAYSCALE), 或者保持不變(CV_LOAD_IMAGE_ANYCOLOR)。
深度指定輸入的圖像是否轉為每個顏色通道每象素8位,(OpenCV的早期版本一樣),或者同輸入的圖像一樣保持不變。
如果輸入有衝突的標誌,將採用較小的數字值。比如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
保存圖像到檔案
int cvSaveImage( const char* filename, const CvArr* image );
filename
檔案名稱。
image
要保存的圖像。
函式cvSaveImage保存圖像到指定檔案。圖像格式的的選擇依賴於filename的擴展名,請參考cvLoadImage。只有8位單通道或者3通道(通道順序為'BGR' )可以使用這個函式保存。如果格式,深度或者通道不符合要求,請先用cvCvtScale 和cvCvtColor轉換;或者使用通用的cvSave保存圖像為XML或者YAML格式。
特別提醒!由於TIFF檔案格式比較混亂,難以統一,此函式讀取TIFF圖片可能會失敗。
函式使用方法
cvLoadImage( filename, -1 ); 默認讀取圖像的原通道數
cvLoadImage( filename, 0 ); 強制轉化讀取圖像為灰度圖
cvLoadImage( filename, 1 ); 讀取彩色圖
例:將讀入圖像強制轉換為灰度圖像顯示
#include <highgui.h>
#include <cv.h>
int main(int argc, char **argv)
{
if (argc != 2)
return -1;
/*強制轉換為灰度圖像*/
IplImage *img = cvLoadImage(argv[1], 0);
cvNamedWindow("example");
cvShowImage("example", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("example");
return 0;
}
函式信息
cvLoadImageM函式原型與cvLoadImage一模一樣,其調用方式也是一模一樣;唯一不同的是其返回值是指向CvMat類型的指針,而非指向IplImage類型的指針。