# Computational Photography

## Overview

// enums

enum
{
cv::@170::INPAINT_NS    = 0,
cv::@170::INPAINT_TELEA = 1,
};

enum
{
cv::@171::NORMAL_CLONE        = 1,
cv::@171::MIXED_CLONE         = 2,
cv::@171::MONOCHROME_TRANSFER = 3,
};

enum
{
cv::@172::RECURS_FILTER   = 1,
cv::@172::NORMCONV_FILTER = 2,
};

// global functions

void
cv::decolor(
InputArray src,
OutputArray grayscale,
OutputArray color_boost
);

void
cv::inpaint(
InputArray src,
OutputArray dst,
int flags
);


## Detailed Documentation

### Global Functions

void
cv::decolor(
InputArray src,
OutputArray grayscale,
OutputArray color_boost
)


Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized black-and-white photograph rendering, and in many single channel image processing applications [51].

This function is to be applied on color images.

Parameters:

 src Input 8-bit 3-channel image. grayscale Output 8-bit 1-channel image. color_boost Output 8-bit 3-channel image.
void
cv::inpaint(
InputArray src,
OutputArray dst,
int flags
)


Restores the selected region in an image using the region neighborhood.

The function reconstructs the selected image area from the pixel near the area boundary. The function may be used to remove dust and scratches from a scanned photo, or to remove undesirable objects from still images or video. See http://en.wikipedia.org/wiki/Inpainting for more details.

• An example using the inpainting technique can be found at opencv_source_code/samples/cpp/inpaint.cpp
• (Python) An example using the inpainting technique can be found at opencv_source_code/samples/python/inpaint.py

Parameters:

 src Input 8-bit, 16-bit unsigned or 32-bit float 1-channel or 8-bit 3-channel image. inpaintMask Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that needs to be inpainted. dst Output image with the same size and type as src . inpaintRadius Radius of a circular neighborhood of each point inpainted that is considered by the algorithm. flags Inpainting method that could be one of the following: INPAINT_NS Navier-Stokes based method [Navier01] INPAINT_TELEA Method by Alexandru Telea [82].