color_matcher package

Submodules

color_matcher.baseclass module

class color_matcher.baseclass.MatcherBaseclass(*args, **kwargs)

Bases: object

__init__(*args, **kwargs)
static rgb2gray(rgb: Optional[numpy.ndarray] = None, standard: str = 'HDTV') numpy.ndarray

Convert RGB color space to monochromatic color space

Parameters
  • rgb (ndarray) – input array in red, green and blue (RGB) space

  • standard (string) – option that determines whether head- and footroom are excluded (‘HDTV’) or considered otherwise

Returns

array in monochromatic space

Return type

ndarray

validate_color_chs()

This function checks whether provided images consist of a valid number of color channels.

validate_img_dims()

This function validates the image dimensions. It throws an exception if the dimension are unequal to 2 or 3.

color_matcher.hist_matcher module

class color_matcher.hist_matcher.HistogramMatcher(*args, **kwargs)

Bases: color_matcher.baseclass.MatcherBaseclass

__init__(*args, **kwargs)
hist_match(src: Optional[numpy.ndarray] = None, ref: Optional[numpy.ndarray] = None) numpy.ndarray

This function conducts channel-wise histogram matching which is invariant of image resolutions, but requires the same number of color channels in both images.

Parameters
  • src (ndarray) – Source image that requires transfer

  • ref (ndarray) – Palette image which serves as reference

  • res (ndarray) – Resulting image after the mapping

Returns

res

Return type

np.ndarray

color_matcher.io_handler module

color_matcher.io_handler.load_img_file(file_path: Optional[str] = None) numpy.ndarray
color_matcher.io_handler.save_img_file(img, file_path: Optional[str] = None, file_type: Optional[str] = None) bool
color_matcher.io_handler.select_file(init_dir=None, title='')

get filepath from tkinter dialog

color_matcher.io_handler.suppress_user_warning(switch=None, category=None)

color_matcher.mvgd_matcher module

class color_matcher.mvgd_matcher.TransferMVGD(*args, **kwargs)

Bases: color_matcher.baseclass.MatcherBaseclass

__init__(*args, **kwargs)
analytical_solver() numpy.ndarray

An analytical solution to the linear equation system of Multi-Variate Gaussian Distributions (MVGDs).

Returns

transfer_mat: Transfer matrix

Return type

np.ndarray

check_dims()

Catch error for wrong color channel number (e.g., gray scale image)

Returns

None

mkl_solver()

This function computes the transfer matrix based on the Monge-Kantorovich Linearization (MKL).

Returns

transfer_mat: Transfer matrix

Return type

np.ndarray

multivar_transfer(src: Optional[numpy.ndarray] = None, ref: Optional[numpy.ndarray] = None, fun: Optional[function] = None) numpy.ndarray

Transfer function to map colors based on for Multi-Variate Gaussian Distributions (MVGDs).

Parameters
  • src (ndarray) – Source image that requires transfer

  • ref (ndarray) – Palette image which serves as reference

  • fun – Optional argument to pass a transfer function to solve for covariance matrices

  • res (ndarray) – Resulting image after the mapping

Returns

res

Return type

np.ndarray

static w2_dist(mu_a: numpy.ndarray, mu_b: numpy.ndarray, cov_a: numpy.ndarray, cov_b: numpy.ndarray) float

Wasserstein-2 distance metric is a similarity measure for Gaussian distributions

Parameters
  • mu_a (ndarray) – Gaussian mean of distribution a

  • mu_b (ndarray) – Gaussian mean of distribution b

  • cov_a (ndarray) – Covariance matrix of distribution a

  • cov_b (ndarray) – Covariance matrix of distribution b

Returns

scalar: Wasserstein-2 metric as a scalar

Return type

float

w2_img_dist(img_a: numpy.ndarray, img_b: numpy.ndarray)

Wasserstein-2 image distance metric is a similarity measure for Gaussian distributions

Parameters
Returns

scalar: Wasserstein-2 image metric as a scalar

Return type

float

color_matcher.normalizer module

class color_matcher.normalizer.Normalizer(data=None, min=None, max=None)

Bases: object

__init__(data=None, min=None, max=None)
norm_fun()

normalize image to values between 1 and 0

type_norm(data=None, min=None, max=None, new_min=None, new_max=None)

normalize numpy image array for provided data type

uint16_norm()

normalize image array to 16-bit unsigned integer

uint8_norm()

normalize image array to 8-bit unsigned integer

color_matcher.top_level module

class color_matcher.top_level.ColorMatcher(*args, **kwargs)

Bases: color_matcher.hist_matcher.HistogramMatcher, color_matcher.reinhard_matcher.ReinhardMatcher, color_matcher.mvgd_matcher.TransferMVGD

__init__(*args, **kwargs)
main() numpy.ndarray

The main function is the high-level entry point performing the mapping based on instantiation arguments.

Returns

Resulting image after color mapping

Return type

np.ndarray

transfer(src: Optional[numpy.ndarray] = None, ref: Optional[numpy.ndarray] = None, method: Optional[str] = None) numpy.ndarray

Transfer function to map colors based on provided transfer method.

Parameters
  • src (ndarray) – Source image that requires transfer

  • ref (ndarray) – Palette image which serves as reference

  • method (str) – (‘default’, ‘hm’, ‘reinhard’, ‘mvgd’, ‘mkl’, ‘hm-mvgd-hm’, ‘hm-mkl-hm’) determining color mapping

Returns

Resulting image after color mapping

Return type

np.ndarray

Module contents