Difference between revisions of "Function:DemosaicDFPD"

From CUVI Wiki
Line 71: Line 71:
|style="font-size:150%;"|
|style="font-size:150%;"|
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
CuviImage input("D:/bayer.tif", CUVI_LOAD_IMAGE_GRAYSCALE_KEEP_DEPTH), output;
cuvi::colorOperations::demosaic_DFPD(input, output, CUVI_BAYER_RGGB);


//Example using C
// Or this to further refine the results
 
cuvi::colorOperations::demosaic_DFPD(input, output, CUVI_BAYER_RGGB, true);
CuviImage gimg = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE_KEEP_DEPTH), gout;
 
cuvi::io::saveImage(output, "D:/debayered.png");
 
//Demosaic
cuvi::colorOperations::demosaic(gimg,gout,CUVI_BAYER_BGGR);


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

Revision as of 16:22, 12 June 2014

Restores an RGB image from a CFA image using DFPD Bayer algorithm. Directional Filtering with Posteriori Decision to restore the color image gives much better results than demosaic (with bilinear interpolation) and remove artifacts.

Function

CuviStatus demosaicDFPD(const CuviImage& src,
                        CuviImage& dst,
                        const CuviBayerSeq sensorAlignment,
                        bool refineResults,
                        const CuviStream& stream = CuviStream());

Parameters

Name Type Description
src const CuviImage& Input Bayer Image
dst CuviImage& Output RGB Image
sensorAlignment CuviBayerSeq Sensor alignment of the bayer image
refineResults bool Perform additional refinement step
stream const CuviStream& GPU stream ID for execution

Image Type Support

Input Output
8u 8u
16u 16u

Sample

Input
Output
Input
Output

Example

CuviImage input("D:/bayer.tif", CUVI_LOAD_IMAGE_GRAYSCALE_KEEP_DEPTH), output;
 
cuvi::colorOperations::demosaic_DFPD(input, output, CUVI_BAYER_RGGB);

// Or this to further refine the results
cuvi::colorOperations::demosaic_DFPD(input, output, CUVI_BAYER_RGGB, true);
 
cuvi::io::saveImage(output, "D:/debayered.png");