31 # include <vcl_msvc_warnings.h> 55 r(red),
g(green),
b(blue) {}
59 inline T
R()
const {
return r; }
60 inline T
G()
const {
return g; }
61 inline T
B()
const {
return b; }
64 inline T
grey()
const {
return T(
r*0.299+0.587*
g+0.114*
b); }
66 #if 0 // deprecated -- use .grey() instead 67 inline operator T()
const {
return T(0.5+
r*0.299+0.587*
g+0.114*
b); }
84 template <
class S>
inline 89 template <
class S>
inline 102 return s <<
'[' << rgb.
r <<
' ' << rgb.
g <<
' ' << rgb.
b <<
']';
160 #define VIL_RGB_INSTANTIATE(T) \ 161 extern "you must include vil/vil_rgb.hxx first." 162 #define VIL_RGB_INSTANTIATE_LS(T) \ 163 extern "you must include vil/vil_rgb.hxx first." vil_rgb< T > & operator+=(vil_rgb< T > const &A)
vil_rgb< double > operator/(vil_rgb< T > const &a, double b)
vil_rgb(T v)
Create grey (v,v,v) vil_rgb cell from value v.
vil_rgb< T > & operator-=(vil_rgb< T > const &A)
vil_rgb< T > operator-(vil_rgb< T > const &A) const
vil_rgb< T > & operator/=(T A)
vil_rgb< T > average(vil_rgb< T > const &a, vil_rgb< T > const &b)
T grey() const
Convert vil_rgb to gray using standard (.299, .587, .114) weighting.
vil_rgb< T > operator *(T A) const
vil_rgb< T > operator *(vil_rgb< T > const &a, vil_rgb< T > const &b)
vil_rgb< T > operator/(vil_rgb< T > const &A) const
vil_rgb(vil_rgb< S > const &that)
vil_rgb(T red, T green, T blue)
Construct a vil_rgb value.
bool operator==(vil_rgb< T > const &o) const
equality.
vil_rgb< T > operator+(vil_rgb< T > const &a, vil_rgb< T > const &b)
bool operator!=(vil_rgb< T > const &a, vil_rgb< T > const &b)
vil_rgb< T > & operator *=(T A)
This is the appropriate pixel type for 24-bit colour images.
std::ostream & operator<<(std::ostream &s, vil_rgb< T > const &rgb)
vil_rgb< T > operator+(vil_rgb< T > const &A) const
vil_rgb< T > & operator=(vil_rgb< S > const &that)