Difference between revisions of "Function:DemosaicDFPD"

From CUVI Wiki
(Undo revision 906 by Jawad (talk))
Line 1: Line 1:
__NOTOC__
__NOTOC__
Enhances the low intensity colors in a dark photo taken from a general purpose mobile, CCTV or DSLR camera. Our technique restores most of the hidden features in a low light image making it suitable for enhancing security footage in real-time at dawn, dusk and other low light conditions.
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===
===Function===
{|
{|
|style="font-size:150%;"|
|style="font-size:150%;"|
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
CuviStatus cuvi::colorOperations::lowlight(const CuviImage& src,
CuviStatus demosaicDFPD(const CuviImage& src,
                                          CuviImage& dst,
                        CuviImage& dst,
                                          const CuviStream& stream = CuviStream());
                        const CuviBayerSeq sensorAlignment,
                        bool refineResults,
                        const CuviStream& stream = CuviStream());
</syntaxhighlight>
</syntaxhighlight>
|}
|}
Line 21: Line 23:
| src
| src
| const CuviImage&
| const CuviImage&
| Input Image
| Input Bayer Image
|-
|-
| dst
| dst
| CuviImage&
| CuviImage&
| Output Image
| Output RGB Image
|-
| sensorAlignment
| CuviBayerSeq
| Sensor alignment of the bayer image
|-
| refineResults
| bool
| Perform additional refinement step
|-
|-
| stream
| stream

Revision as of 18:41, 27 March 2018

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

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

Example

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

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