Skip to content

Latest commit

 

History

History
38 lines (21 loc) · 3 KB

File metadata and controls

38 lines (21 loc) · 3 KB

 

 

 

 

 

 

Graphics code snippet to get a histogram of a VCL TImage its color values.

 


//From htpp://www.richelbilderbeek.nl/CppGetImageHistogram.htm const std::vector<int> GetImageHistogram(const TImage * const image) {   assert(image!=0 && "Image is NULL");   assert(image->Picture->Bitmap!=0 && "Image bitmap is NULL");   assert(image->Picture->Bitmap->PixelFormat == pf24bit && "Image bitmap must be 24 bit");   //Get the width and height from the source   const int width  = image->Picture->Bitmap->Width;   const int height = image->Picture->Bitmap->Height;   std::vector<int> histogram(256,0); //There are 256 different color values   for (int y=0; y!=height; ++y)   {     const unsigned char * line       = static_cast<const unsigned char *>(         image->Picture->Bitmap->ScanLine[y]);     for (int x=0; x!=width; ++x)     {       const int grey         = (line[x*3+0] + line[x*3+1] + line[x*3+2]) / 3;       ++histogram[grey];     }   }   return histogram; }