1、函数原型:IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
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。
Windows
位图文件- BMP, DIB;
JPEG文件 - JPEG, JPG, JPE;
便携式网络图片- PNG;
便携式
图像格式- PBM,PGM,PPM;
Sun rasters - SR,RAS;
TIFF文件 - TIFF,TIF;
OpenEXR HDR 图片 - EXR;
JPEG 2000 图片- jp2。
2、cvLoadImage函数使用方法:
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;
}
3、cvLoadImageM()函数其函数原型与cvLoadImage一模一样,其调用方式也是一模一样;唯一不同的是其返回值是指向CvMat类型的指针,而非指向IplImage类型的指针。