Get the median (or mean or user-defined function) colour value of a specified patch of pixels on an image. This is useful for matching background colours.
Arguments
- stimuli
list of stimuli
- width, height
dimensions of the patch in pixels, if <=1, interpreted as proportions of width or height
- x_off, y_off
offset in pixels or proportion (<1)
- color
The type of color to return (hex, rgb)
- func
The function to apply to an array of L*ab color values to determine the central colour (defaults to median, but mean, min, or max can also be useful)
Details
The colour values of each pixel in the patch are converted to CIE-Lab values before using the func to calculate the central tendency of the L (lightness), a (red-green axis) and b (blue-yellow axis); see col2lab()
and lab2rgb()
for more details.
This excludes transparent pixels, and returns "transparent" if all pixels in the patch are transparent.
Examples
stimuli <- demo_stim()
# get colour from the upper left corder
patch(stimuli)
#> f_multi m_multi
#> "#B7BBBCFF" "#AAAEADFF"
# get median colour from centre .1 width pixels
patch(stimuli, width = .1, height = .1,
x_off = .45, y_off = .45)
#> f_multi m_multi
#> "#957463FF" "#8D6A5DFF"
# get mean rgb colour from full image
patch(stimuli, width = 1, height = 1,
color = "rgb", func = mean)
#> $f_multi
#> red green blue alpha
#> 187 181 178 255
#>
#> $m_multi
#> red green blue alpha
#> 189 185 182 255
#>