int energy(Pixel** image, int column, int row, int width, int height) { // TODO(student): compute the energy of a pixel INFO(image); INFO(column); INFO(row); INFO(width); INFO(height); int energy = 0; int energy_col = 0; int energy_row = 0; int right_col = 0; int right_row = 0; int left_col = 0; int left_row = 0; int up_col = 0; int up_row = 0; int down_col = 0; int down_row = 0; int h_red = 0; int h_green = 0; int h_blue = 0; int v_red = 0; int v_green = 0; int v_blue = 0; if (width == 1 && height == 1) return 0; if (column + 1 == width) { right_col = 0; right_row = row; left_col = column - 1; left_row = row; } else if (column == 0) { right_col = column + 1; right_row = row; left_col = width - 1; left_row = row; } else { right_col = column + 1; right_row = row; left_col = column - 1; left_row = row; } h_red = image[right_col][right_row].r - image[left_col][left_row].r; h_green = image[right_col][right_row].g - image[left_col][left_row].g; h_blue = image[right_col][right_row].b - image[left_col][left_row].b; energy_col = (h_red * h_red) + (h_green * h_green) + (h_blue * h_blue); if (row + 1 == height) { down_col = column; down_row = 0; up_col = column; up_row = row - 1; } else if (row == 0) { down_col = column; down_row = row + 1; up_col = column; up_row = height - 1; } else { down_col = column; down_row = row + 1; up_col = column; up_row = row - 1; } v_red = image[down_col][down_row].r - image[up_col][up_row].r; v_green = image[down_col][down_row].g - image[up_col][up_row].g; v_blue = image[down_col][down_row].b - image[up_col][up_row].b; energy_row = v_red * v_red + v_green * v_green + v_blue * v_blue; energy = energy_col + energy_row; return energy; }