Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. if (sOption == L"histogram")
  2.     {
  3.         const int pixNum = m_imgW * m_imgH;
  4.  
  5.         if (pixNum == 0)
  6.         {
  7.             __debugbreak();
  8.             return;
  9.         }
  10.  
  11.         int histogram[256] = { 0 };
  12.         for (int x = 0; x < m_imgW; x++)
  13.         {
  14.             for (int y = 0; y < m_imgH; y++)
  15.             {
  16.                 histogram[GetPixel(x, y)] += 1;
  17.             }
  18.         }
  19.  
  20.         float probabilities[256] = { 0.0f };
  21.         for (int i = 0; i < 256; i++)
  22.         {
  23.             probabilities[i] = (float)histogram[i] / (float)pixNum;
  24.         }
  25.  
  26.         int sum = 0;
  27.         for (int i = 0; i < 256; i++)
  28.         {
  29.             sum += histogram[i];
  30.         }
  31.  
  32.  
  33.         float transform[256] = { 0.0f };
  34.         for (int i = 0; i < 256; i++)
  35.         {
  36.             for (int j = 0; j <= i; j++)
  37.             {
  38.                 transform[i] += probabilities[j];
  39.             }
  40.         }
  41.  
  42.         for (int x = 0; x < m_imgW; x++)
  43.         {
  44.             for (int y = 0; y < m_imgH; y++)
  45.             {
  46.                 BYTE j = GetPixel(x, y);
  47.                 int value = transform[j] * 255.0f;
  48.                 SetPixel(x, y, value);
  49.             }
  50.         }
  51.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement