All Projects → TJCoding → Enhanced Image Colour Transfer

TJCoding / Enhanced Image Colour Transfer

Licence: lgpl-3.0
An Enhanced Implementation of the Colour Transfer Method Proposed by E Reinhard et al.

Labels

Projects that are alternatives of or similar to Enhanced Image Colour Transfer

Prlib
Pre-Recognition Library - library with algorithms for improving OCR quality.
Stars: ✭ 18 (-35.71%)
Mutual labels:  opencv
Facerec Lock
Face recognition to control servo lock using Raspberry Pi and OpenCV
Stars: ✭ 7 (-75%)
Mutual labels:  opencv
Docker Opencv
OpenCV image for Docker based on Ubuntu.
Stars: ✭ 14 (-50%)
Mutual labels:  opencv
Ncappzoo
Contains examples for the Movidius Neural Compute Stick.
Stars: ✭ 902 (+3121.43%)
Mutual labels:  opencv
Jpegrtspcamera
Sample RTSP server streaming MJPEG video from PC camera
Stars: ✭ 25 (-10.71%)
Mutual labels:  opencv
Idcardgenerator
身份证图片生成工具 generate an id card picture
Stars: ✭ 862 (+2978.57%)
Mutual labels:  opencv
Multi Threading Camera Stream
Multi-threading camera stream to improve video processing performance
Stars: ✭ 18 (-35.71%)
Mutual labels:  opencv
Kinectwithopencvforunityexample
Kinect with OpenCV for Unity Example
Stars: ✭ 20 (-28.57%)
Mutual labels:  opencv
Camodet
Lightweight Simple CAmera MOtion DETection application.
Stars: ✭ 26 (-7.14%)
Mutual labels:  opencv
Reproject Image To 3d
Comparing a OpenCV's reprojectImageTo3D to my own
Stars: ✭ 13 (-53.57%)
Mutual labels:  opencv
Skydetector
A Python implementation of Sky Region Detection in a Single Image for Autonomous Ground Robot Navigation (Shen and Wang, 2013)
Stars: ✭ 23 (-17.86%)
Mutual labels:  opencv
Brfv4 mac examples
macOS C++ examples utilizing OpenCV for camera access and drawing the face tracking results.
Stars: ✭ 25 (-10.71%)
Mutual labels:  opencv
Raspberryrobot
基于树莓派的智能机器人
Stars: ✭ 11 (-60.71%)
Mutual labels:  opencv
Mocr
Meaningful Optical Character Recognition from identity cards with Deep Learning.
Stars: ✭ 19 (-32.14%)
Mutual labels:  opencv
Anonymize Video
Replace faces in a video with imaginary persons generated by a progressive GAN deep neural network
Stars: ✭ 15 (-46.43%)
Mutual labels:  opencv
Neuralsuperresolution
Real-time video quality improvement for applications such as video-chat using Perceptual Losses
Stars: ✭ 18 (-35.71%)
Mutual labels:  opencv
Hadoop Pot
A scalable Apache Hadoop-based implementation of the Pooled Time Series video similarity algorithm based on M. Ryoo et al paper CVPR 2015.
Stars: ✭ 8 (-71.43%)
Mutual labels:  opencv
Facetracker
Real time deformable face tracking in C++ with OpenCV 3.
Stars: ✭ 944 (+3271.43%)
Mutual labels:  opencv
Facerecognition2
Mediante el uso de un script con OpenCV aprenderemos las caras que nos interesen y con otro script arrancaremos la función de reconocimiento. Control de acceso al laboratorio con reconocimiento facial.
Stars: ✭ 20 (-28.57%)
Mutual labels:  opencv
Surf Opencv Inclination
Indentify an object by SURF algorithm using OpenCV and calculate the rotatinal angle of the object
Stars: ✭ 12 (-57.14%)
Mutual labels:  opencv

Enhanced Image-Colour-Transfer

============================================================

An Enhanced Implementation of the Colour Transfer Method proposed by E Reinhard et al.

A revised version of the existing method is proposed which utilises image representation in the L*a*b colour space. As with previous implementations, the method takes account of the mean and standard deviation values of the respective L*a*b components but, in addition, it addresses the correlation between the 'a' and 'b' colour components. This method is described further in the file 'Enhanced Image-Colour-Transfer.pdf' in the Documents folder.

Additional options allow for:- the rescaling of data to constrain it within range; recursive iteration of the transfer process, and a choice of shading method.

The program 'Main.cpp' runs under C++ using OpenCV. Processing options may be specified by modifying statements within the 'Processing Selections' section in the main routine.

The examples shown below have been selected to illustrate the differences between the different processing methods. For other image combinations, the differences may be less noticeable.

The images below are as follows: - target image, source image, image after basic processing and image after enhanced processing. For basic processing, there is a single iteration with data clipping, no cross correlation processing and source-image-derived shading. For enhanced processing, there are two iterations, with data scaling, cross correlation processing and target-image-derived shading.

Composite of Corn Image: Inputs and Outputs

Composite of Ocean Image: Inputs and Outputs

Composite of Flowers Image: Inputs and Outputs

The images below are as follows:- image after enhanced processing, image after processing by a well-known commercial software application, image after processing by a new proprietary method developed by the author, image after processing by an on line facility which uses a neural algorithm of artistic style.

Second Composite of Flowers Image: Inputs and Outputs

A second implementation of enhanced processing has been provided in the folder 'Main_L_Alpha_Beta'. This utilises an alternative colour space representation developed by Ruderman et al. This colour space was integral to the original colour transfer method as proposed by Reinhard et al.

Initial indications are that, for many image pairs, the L*a*b and the L-alpha-beta implementations achieve similar quality images, even though there may be slight differences. However, some instances have been found where the L*a*b implementation produces a poor quality image but the L-alpha-beta implementation does not. This is further discussed in the file 'Enhanced Image-Colour- Transfer --- LAlphaBeta' in the Documents folder. Feedback would be welcome. Of particular interest would be examples which highlight the differences between standard processing, the two versions of enhanced processing and Photoshop processing.

A new implementation with improved processing options is now provided in the 'Further Enhanced Processing' folder, and is described below. This is based upon L-alpha-beta processing and is now recommended in preference to the processing described above.

============================================================================

Further Enhanced Image-Colour-Transfer

============================================================================

A Further Enhanced Implementation of the Colour Transfer Method proposed by E Reinhard et al.

A further revised version of the standard basic processing method is proposed which utilises image representation in the l-alpha-beta colour space and which supersedes the Enhanced Method described above. As with the basic processing, account is taken of the the mean and standard deviation values of the respective l-alpha-beta components but, in addition, the correlation between the 'alpha' and 'beta' colour components is adddressed. Additional new options allow for the matching of higher moments of the colour components beyond the second moments, for the adjustment of image saturation and for the implementation of flexible image shading options. The processing is described further in the file 'Further Enhanced Image-Colour-Transfer.pdf ' in the 'Documents' sub-folder of the 'Further Enhanced Processing' folder .

The program 'Main.cpp ' in the 'Further Enhanced Processing' folder runs under C++ using OpenCV. Processing options may be specified by modifying statements within the 'Processing Selections' section in the main routine.

The following images illustrate the processing describe here.

The first image in each set is the target image and the second is the colour source image. The third image shows the effects of standard basic processing as proposed by E Reinhard et al. The final image has been subject to the further enhanced processing using the default processing options specified in the source code and in its asssociated documentation.

Composite of Vase Image: Inputs and Outputs

Composite of Autumn Image: Inputs and Outputs

Composite of Flowers Image: Inputs and Outputs

An executable for the 'Further Enhanced-Image-Colour-Transfer' processing is available here. https://github.com/TJCoding/Image-Colour-Transfer-Processing-Executable

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].