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 !*/