compare_colour {farver} | R Documentation |
Calculate the distance between colours
Description
There are many ways to measure the distance between colours. farver
provides 5 different algorithms, ranging from simple euclidean distance in
RGB space, to different perceptual measures such as CIE2000.
Usage
compare_colour(
from,
to = NULL,
from_space,
to_space = from_space,
method = "euclidean",
white_from = "D65",
white_to = white_from,
lightness = 2,
chroma = 1
)
Arguments
from , to |
Numeric matrices with colours to compare - the format is the
same as that for |
from_space , to_space |
The colour space of |
method |
The method to use for comparison. Either |
white_from , white_to |
The white reference of the from and to colour
space. Will only have an effect for relative colour spaces such as Lab and
luv. Any value accepted by |
lightness , chroma |
Weight of lightness vs chroma when using CMC. Common
values are |
Value
A numeric matrix with the same number of rows as colours in from
and the same number of columns as colours in to
. If to
is not given, only
the upper triangle will be returned.
Handling of non-finite and out of bounds values
NA
, NaN
, -Inf
, and Inf
are treated as invalid input and will result
in NA
values for the colour. If a given colourspace has finite bounds in
some of their channels, the input will be capped before conversion, and the
output will be capped before returning, so that both input and output colours
are valid colours in their respective space. This means that converting back
and forth between two colourspaces may result in a change in the colour if
the gamut of one of the spaces is less than the other.
Examples
r <- decode_colour(rainbow(10))
h <- decode_colour(heat.colors(15))
# Compare two sets of colours
compare_colour(r, h, 'rgb', method = 'cie2000')
# Compare a set of colours with itself
compare_colour(r, from_space = 'rgb', method = 'cmc')
# Compare colours from different colour spaces
h_luv <- convert_colour(h, 'rgb', 'luv')
compare_colour(r, h_luv, 'rgb', 'luv')