assign_pixel_intensity
assign_pixel_intensity()は、ピクセルの輝度を変更することができるテンプレート関数です。したがって、問題のピクセルがグレースケールピクセルの場合は、そのピクセルに単純に指定された値を割り当てます。ただし、ピクセルがグレースケールピクセルではない場合、ピクセルをHSI色空間に変換し、Iチャネルを指定の強度に設定してから、このHSI値を元のピクセルの色空間に変換します。
#include <dlib / pixel.h>
template <
typename P,
typename T
>
inline void assign_pixel_intensity (
P& dest,
const T& new_intensity
);
/*!
requires
- pixel_traits<P> must be defined
- pixel_traits<T> must be defined
ensures
- This function changes the intensity of the dest pixel. So if the pixel in
question is a grayscale pixel then it simply assigns that pixel with the
value of get_pixel_intensity(new_intensity). However, if the pixel is not
a grayscale pixel then it converts the pixel to the HSI color space and sets
the I channel to the given intensity and then converts this HSI value back to
the original pixel's color space.
- Note that we don't necessarily have #get_pixel_intensity(dest) == get_pixel_intensity(new_intensity)
due to vagaries of how converting to and from HSI works out.
- if (the dest pixel has an alpha channel) then
- #dest.alpha == dest.alpha
!*/