Load .jpg image and save as BMP. Functions:
cvLoadImage, cvSaveImage.
Handles these types:
! Windows bitmap (.bmp, .dib)
! Sun Raster (.sr, .ras)
! JPEG (.jpeg, .jpg, .jpe)
! Portable Network Graphics (.png)
! Portable image (.pbm, .pgm, .ppm)
! TIFF (.tiff, .tif)
Load a sequece of images-> .
Create image
// int width, height (in pixels)
// depth e.g. IPL_DEPTH_8U, IPL_DEPTH_32F …
// int nChannels e.g. 1,3
IplImage* img= cvCreateImage( cvSize(width, height), depth, nChannels );
//To release the image do this:
cvReleaseImage(&img);
//Create a image with the same size, depth and channels
//src = source-image (IplImage *)
//dest = destination-image
IplImage* dest = cvCreateImage( cvGetSize(src), src->depth, src->nChannels );
Seperate RGB channel
//src = IplImage *, IPL_DEPTH_8U, nChannels =3
IplImage * red = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);
IplImage * green = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);
IplImage * blue = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);
cvCvtPixToPlane(src,red,green,blue,NULL);
//OR
//src = IplImage *, IPL_DEPTH_8U, nChannels =4
IplImage * red = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);
IplImage * green = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);
IplImage * blue = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);
IplImage * alpha = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);
cvCvtPixToPlane(src,red,green,blue,alpha);
Convert Color
//from RGB (3-Channel)=src to GRAY (1 Channel)=dest
IplImage* dest= cvCreateImage(cvGetSize(src), IPL_DEPTH_8U , 1);
cvCvtColor(src ,dest, CV_RGB2GRAY);
//from GRAY(1-Channel)=src to RGB(3 Channel)=dest
IplImage* dest= cvCreateImage(cvGetSize(src), IPL_DEPTH_8U , 3);
cvCvtColor(src ,dest, CV_GRAY2RGB);
From 32F image to 8U
//src = IplImage * - depth = IPL_DEPTH_32F, nChannels =1
//dest = IplImage * - depth = IPL_DEPTH_8U, nChannels =1 (gray)
double scale, shift;
double minVal, maxVal;
cvMinMaxLoc(src, &minVal, &maxVal);
scale = 255/(maxVal - minVal);
shift = -minVal*scale;
cvConvertScale (src, dest, scale, shift);
From 8U image to 32FU
: cvConvertScale( image_8U, image_32F,1,0);