BYTE pcl::Kinect2Grabber::RGBToGreyScale(BYTE r, BYTE g, BYTE b){
	double R_linear = sRBG_to_linear(r / 255.0);
	double G_linear = sRBG_to_linear(g / 255.0);
	double B_linear = sRBG_to_linear(b / 255.0);
	double gray_linear = 0.2126*R_linear + 0.7152*G_linear + 0.0722*B_linear;
	return round(linear_to_sRGB(gray_linear) * 255);
}
Exemple #2
0
 virtual void apply (float *data, int width, int height, int channels,
                     stride_t chanstride, stride_t xstride,
                     stride_t ystride) const
 {
     if (channels > 3)
         channels = 3;
     for (int y = 0;  y < height;  ++y) {
         char *d = (char *)data + y*ystride;
         for (int x = 0;  x < width;  ++x, d += xstride)
             for (int c = 0;  c < channels;  ++c)
                 ((float *)d)[c] = linear_to_sRGB (((float *)d)[c]);
     }
 }