Difference between revisions of "Function:Demosaic"

From CUVI Wiki
Line 5: Line 5:
|style="font-size:150%;"|
|style="font-size:150%;"|
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
CuviStatus demosaic(CuviImage* srcImage,
CuviStatus demosaic(const CuviImage& src,
                     CuviImage* dstImage,
                     CuviImage& dst,
                     CuviBayerSeq bayerSequence,
                     const CuviBayerSeq sensorAlignment,
                     CuviStream* stream = NULL);
                     const CuviStream& stream = CuviStream());
</syntaxhighlight>
</syntaxhighlight>
|}
|}
Line 21: Line 21:
! Description
! Description
|-
|-
| srcImage
| src
| CuviImage*
| const CuviImage&
| Input Bayer Image
| Input Bayer Image
|-
|-
| dstImage
| dst
| CuviImage*
| CuviImage&
| Output RGB Imag
| Output RGB Imag
|-
|-
| bayerSequence
| sensorAlignment
| CuviBayerSeq
| CuviBayerSeq
| Bayer Type
| Bayer Type
|-
|-
| stream
| stream
| CuviStream*
| const CuviStream&
| GPU stream ID for execution
| GPU stream ID for execution


Line 72: Line 72:
//Example using C
//Example using C


CuviImage gimg = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE_KEEP_DEPTH), gout;


CuviSize size;
CuviMat* gimg, *gout;
CuviStream* str;
//Creating Stream
cuviCreateStream(&str);
//Size of the image
size = cuviSize(img->width,img->height);
//Creating GPU Images
cuviCreateMat(&gimg,size,img->depth,img->nChannels);
cuviCreateMat(&gout,size,img->depth,3);
//Populating input image data on GPU
cuviUploadData(gimg,img->imageData,img->widthStep,str);


//Demosaic  
//Demosaic  
cuviDemosaic(gimg,gout,CUVI_BAYER_BGGR,str);
cuvi::colorOperations::demosaic(gimg,gout,CUVI_BAYER_BGGR);


</syntaxhighlight>
</syntaxhighlight>
|}
|}

Revision as of 19:42, 18 April 2013

Restores an RGB image from a gray-scale CFA image using Bayer algorithm

Function

CuviStatus demosaic(const CuviImage& src,
                    CuviImage& dst,
                    const CuviBayerSeq sensorAlignment,
                    const CuviStream& stream = CuviStream());


Parameters

Name Type Description
src const CuviImage& Input Bayer Image
dst CuviImage& Output RGB Imag
sensorAlignment CuviBayerSeq Bayer Type
stream const CuviStream& GPU stream ID for execution


Image Type Support

Input Output
8u 8u
16u 16u

Sample

Error creating thumbnail: Unable to save thumbnail to destination
Input
Error creating thumbnail: Unable to save thumbnail to destination
Output
Error creating thumbnail: Unable to save thumbnail to destination
Input
Error creating thumbnail: Unable to save thumbnail to destination
Output

Example

//Example using C

CuviImage gimg = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE_KEEP_DEPTH), gout;


//Demosaic 
cuvi::colorOperations::demosaic(gimg,gout,CUVI_BAYER_BGGR);