Skip to main content

Do color correction of images using machine learning.

Project description

ColorCorrectionML

ColorCorrectionML is a Python package for color correction of images using machine learning. It uses ML regression methods (linear, least sqaure, and partial least squares regression) to learn the color correction function from a training image with a color checker. The learned function is then applied to correct the color of a test image.

Installation

pip install colorcorrectionML

Usage

from ColorCorrectionML import ColorCorrectionML
import cv2

img = cv2.imread('Images/img2.png')

cc = ColorCorrectionML(img, chart='Classic', illuminant='D50')

method = 'pls' # 'linear', 'lstsq', 'pls' 
# for linear regression, least square regression, and partial least square regression respectively
show = True

kwargs = {
    'method': method,
    'degree': 3, # degree of polynomial
    'interactions_only': False, # only interactions terms,
    'ncomp': 10, # number of components for PLS only
    'max_iter': 5000, # max iterations for PLS only
    'white_balance_mtd': 0 # 0: no white balance, 1: learningBasedWB, 2: simpleWB, 3: grayWorldWB,
    }

M, patch_size = cc.compute_correction(
    show=show,
    **kwargs
)
    

# resize img by 2
# img = cv2.resize(img, (0,0), fx=0.3, fy=0.3, interpolation=cv2.INTER_AREA)

img_corr = cc.correct_img(img, show=True)
# img_corr = cc.Parallel_correct_img(img, chunks_=50000, show=True)

Example results

Scatter plot of the original image and the corrected image color values scatter plot

Color correction results color correction results

TODO

  1. Add other reference color values (D55, D65, D70, D75)
  2. Add other color charts (ColorChecker24, ColorCheckerSG, ColorCheckerDC)
  3. Add other color spaces (CIELab, XYZ, etc.)
  4. Add other regression methods (Ridge, Lasso, ElasticNet, etc.)
  5. Refine the white balance methods

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

colorcorrectionML-0.0.2.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

colorcorrectionML-0.0.2.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file colorcorrectionML-0.0.2.1.tar.gz.

File metadata

  • Download URL: colorcorrectionML-0.0.2.1.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for colorcorrectionML-0.0.2.1.tar.gz
Algorithm Hash digest
SHA256 576a91a84e605bc9ed16fef8ab889a7b8ce970dd346db3f263684d67b3316e1b
MD5 b63f2b631811638533f85d9c856e0837
BLAKE2b-256 3c6421b299ab50da533c204f2bb4f8cad181d890cb92f03733907815f896effc

See more details on using hashes here.

File details

Details for the file colorcorrectionML-0.0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for colorcorrectionML-0.0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ed17dc786c8dc11f66da728063a7d13495ce79d861cd6e792031a0f1e50bcc4
MD5 81c3de9ef5db38da737e4b7bb0185d1a
BLAKE2b-256 3904048a6d3e3d2cc26df26e5810b5b7f0859b33bfe673da0b508b6188bd9a1e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page