#ifndef FCAM_DEMOSAIC_H #define FCAM_DEMOSAIC_H /** \file * Converting RAW data to RGB24 by demosiacking and gamma correcting. */ #include "HalideBuffer.h" namespace FCam { /** Demosaic, white balance, and gamma correct a raw frame, and * return a slightly smaller RGB24 format image. At least four * pixels are lost from each side of the image, more if necessary * to maintain the following constraint on the output size: The * output will have a width that is a multiple of 40, and a height * which is a multiple of 24. In order to color correct, this uses * the frame's shot's custom color matrix if it exists. Otherwise, * it uses the frame's platform's \ref Platform::rawToRGBColorMatrix * method to retrieve the correct white-balanced color conversion * matrix. */ void demosaic(Halide::Runtime::Buffer<uint16_t> input, Halide::Runtime::Buffer<uint8_t> out, float colorTemp = 3700.0f, float contrast = 50.0f, bool denoise = true, int blackLevel = 25, int whiteLevel = 1023, float gamma = 2.2f); } #endif