处理图像

 

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);

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值