Commit 49f4967d authored by Clément Bœsch's avatar Clément Bœsch

avfilter: add selectivecolor filter

parent 47c5a305
......@@ -17,6 +17,7 @@ version <next>:
- chromaprint fingerprinting muxer
- ffplay dynamic volume control
- displace filter
- selectivecolor filter
version 2.8:
......
......@@ -13037,6 +13037,73 @@ select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] over
@end example
@end itemize
@section selectivecolor
Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of colors (such
as "reds", "yellows", "greens", "cyans", ...). The adjustment range is defined
by the "purity" of the color (that is, how saturated it already is).
This filter is similar to the Adobe Photoshop Selective Color tool.
The filter accepts the following options:
@table @option
@item correction_method
Select color correction method.
Available values are:
@table @samp
@item absolute
Specified adjustments are applied "as-is" (added/subtracted to original pixel
component value).
@item relative
Specified adjustments are relative to the original component value.
@end table
Default is @code{absolute}.
@item reds
Adjustments for red pixels (pixels where the red component is the maximum)
@item yellows
Adjustments for yellow pixels (pixels where the blue component is the minimum)
@item greens
Adjustments for green pixels (pixels where the green component is the maximum)
@item cyans
Adjustments for cyan pixels (pixels where the red component is the minimum)
@item blues
Adjustments for blue pixels (pixels where the blue component is the maximum)
@item magentas
Adjustments for magenta pixels (pixels where the green component is the minimum)
@item whites
Adjustments for white pixels (pixels where all components are greater than 128)
@item neutrals
Adjustments for all pixels except pure black and pure white
@item blacks
Adjustments for black pixels (pixels where all components are lesser than 128)
@item psfile
Specify a Photoshop selective color file (@code{.asv}) to import the settings from.
@end table
All the adjustment settings (@option{reds}, @option{yellows}, ...) accept up to
4 space separated floating point adjustment values in the [-1,1] range,
respectively to adjust the amount of cyan, magenta, yellow and black for the
pixels of its range.
@subsection Examples
@itemize
@item
Increase cyan by 55% and reduce yellow by 33% in every green areas, and
increase magenta by 27% in blue areas:
@example
selectivecolor=greens=.5 0 -.33 0:blues=0 .27
@end example
@item
Use a Photoshop selective color preset:
@example
selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
@end example
@end itemize
@section sendcmd, asendcmd
Send commands to filters in the filtergraph.
......
......@@ -206,6 +206,7 @@ OBJS-$(CONFIG_SAB_FILTER) += vf_sab.o
OBJS-$(CONFIG_SCALE_FILTER) += vf_scale.o
OBJS-$(CONFIG_SCALE2REF_FILTER) += vf_scale.o
OBJS-$(CONFIG_SELECT_FILTER) += f_select.o
OBJS-$(CONFIG_SELECTIVECOLOR_FILTER) += vf_selectivecolor.o
OBJS-$(CONFIG_SENDCMD_FILTER) += f_sendcmd.o
OBJS-$(CONFIG_SETDAR_FILTER) += vf_aspect.o
OBJS-$(CONFIG_SETFIELD_FILTER) += vf_setfield.o
......
......@@ -226,6 +226,7 @@ void avfilter_register_all(void)
REGISTER_FILTER(SCALE, scale, vf);
REGISTER_FILTER(SCALE2REF, scale2ref, vf);
REGISTER_FILTER(SELECT, select, vf);
REGISTER_FILTER(SELECTIVECOLOR, selectivecolor, vf);
REGISTER_FILTER(SENDCMD, sendcmd, vf);
REGISTER_FILTER(SEPARATEFIELDS, separatefields, vf);
REGISTER_FILTER(SETDAR, setdar, vf);
......
......@@ -30,7 +30,7 @@
#include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 6
#define LIBAVFILTER_VERSION_MINOR 10
#define LIBAVFILTER_VERSION_MINOR 11
#define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment