40 #ifndef LIBDCP_COLOUR_CONVERSION_H
41 #define LIBDCP_COLOUR_CONVERSION_H
46 #if BOOST_VERSION >= 106400
47 #include <boost/serialization/array_wrapper.hpp>
49 #include <boost/numeric/ublas/matrix.hpp>
50 #include <boost/optional.hpp>
56 class TransferFunction;
79 std::shared_ptr<const TransferFunction> in,
85 boost::optional<Chromaticity> adjusted_white,
86 std::shared_ptr<const TransferFunction> out
89 std::shared_ptr<const TransferFunction> in ()
const {
93 YUVToRGB yuv_to_rgb ()
const {
113 boost::optional<Chromaticity> adjusted_white ()
const {
117 std::shared_ptr<const TransferFunction> out ()
const {
121 void set_in (std::shared_ptr<const TransferFunction> f) {
125 void set_yuv_to_rgb (YUVToRGB y) {
149 void unset_adjusted_white () {
153 void set_out (std::shared_ptr<const TransferFunction> f) {
159 boost::numeric::ublas::matrix<double> rgb_to_xyz ()
const;
160 boost::numeric::ublas::matrix<double> xyz_to_rgb ()
const;
161 boost::numeric::ublas::matrix<double> bradford ()
const;
173 std::shared_ptr<const TransferFunction>
_in;
183 std::shared_ptr<const TransferFunction>
_out;
A representation of a x,y,z chromaticity, where z = 1 - x - y.
A representation of all the parameters involved the colourspace conversion of a YUV image to XYZ (via...
std::shared_ptr< const TransferFunction > _out
static ColourConversion const & s_gamut3_to_xyz()
boost::optional< Chromaticity > _adjusted_white
std::shared_ptr< const TransferFunction > _in
Namespace for everything in libdcp.