Facebook
From Whipped Human, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 91
  1. int energy(Pixel** image, int column, int row, int width, int height) {
  2.     // TODO(student): compute the energy of a pixel
  3.     INFO(image);
  4.     INFO(column);
  5.     INFO(row);
  6.     INFO(width);
  7.     INFO(height);
  8.  
  9.     int energy = 0;
  10.         int energy_col = 0;
  11.         int energy_row = 0;
  12.         int right_col = 0;
  13.         int right_row = 0;
  14.         int left_col = 0;
  15.         int left_row = 0;
  16.         int up_col = 0;
  17.         int up_row = 0;
  18.         int down_col = 0;
  19.         int down_row = 0;
  20.         int h_red = 0;
  21.         int h_green = 0;
  22.         int h_blue = 0;
  23.         int v_red = 0;
  24.         int v_green = 0;
  25.         int v_blue = 0;
  26.  
  27.         if (width == 1 && height == 1)
  28.       return 0;
  29.          
  30.     if (column + 1 == width) {
  31.         right_col = 0;
  32.         right_row = row;
  33.         left_col = column - 1;
  34.         left_row = row;
  35.     }
  36.  
  37.     else if (column == 0) {
  38.         right_col = column + 1;
  39.         right_row = row;
  40.         left_col = width - 1;
  41.         left_row = row;
  42.     }
  43.  
  44.     else {
  45.         right_col = column + 1;
  46.         right_row = row;
  47.         left_col = column - 1;
  48.         left_row = row;
  49.     }
  50.  
  51.     h_red = image[right_col][right_row].r - image[left_col][left_row].r;
  52.     h_green = image[right_col][right_row].g - image[left_col][left_row].g;
  53.     h_blue = image[right_col][right_row].b - image[left_col][left_row].b;
  54.     energy_col = (h_red * h_red) + (h_green * h_green) + (h_blue * h_blue);
  55.  
  56.     if (row + 1 == height) {
  57.                     down_col = column;
  58.                     down_row = 0;
  59.         up_col = column;
  60.         up_row = row - 1;
  61.     }  
  62.  
  63.     else if (row == 0) {
  64.         down_col = column;
  65.         down_row = row + 1;
  66.         up_col = column;
  67.         up_row = height - 1;
  68.     }
  69.  
  70.     else {
  71.         down_col = column;
  72.         down_row = row + 1;
  73.         up_col = column;
  74.         up_row = row - 1;
  75.     }
  76.  
  77.     v_red = image[down_col][down_row].r - image[up_col][up_row].r;
  78.     v_green = image[down_col][down_row].g - image[up_col][up_row].g;
  79.     v_blue = image[down_col][down_row].b - image[up_col][up_row].b;
  80.     energy_row = v_red * v_red + v_green * v_green + v_blue * v_blue;
  81.    
  82.         energy = energy_col + energy_row;
  83.     return energy;
  84. }