Here is my part of code. I am looking for a way to reduce the redundancy to get red, green, and blue by three big parts but looks like similar calculation. Is any better way to make it work? For loop? or any idea? Is anyone can give me an idea? please!!!!! Thank you!!!
for(int row = 1; row < pi.getHeight() - 1; row++) {
for(int col = 1; col < pi.getWidth() - 1; col++) {
int red_P_C = 4 * data[row][col].red;
int red_P_1 = 1 * data[row-1][col-1].red;
int red_P_2 = 2 * data[row-1][col].red;
int red_P_3 = 1 * data[row-1][col+1].red;
int red_P_4 = 2 * data[row][col-1].red;
int red_P_5 = 2 * data[row][col+1].red;
int red_P_6 = 1 * data[row+1][col-1].red;
int red_P_7 = 2 * data[row+1][col].red;
int red_P_8 = 1 * data[row+1][col+1].red;
int redTotal = red_P_C + red_P_1 + red_P_2 + red_P_3 + red_P_4 + red_P_5 + red_P_6 + red_P_7 + red_P_8;
int redActual = redTotal/16;
int g_P_C = 4 * data[row][col].green;
int g_P_1 = data[row-1][col-1].green;
int g_P_2 = 2 * data[row-1][col].green;
int g_P_3 = data[row-1][col+1].green;
int g_P_4 = 2 * data[row][col-1].green;
int g_P_5 = 2 * data[row][col+1].green;
int g_P_6 = data[row+1][col-1].green;
int g_P_7 = 2 * data[row+1][col].green;
int g_P_8 = data[row+1][col+1].green;
int gTotal = g_P_C + g_P_1 + g_P_2 + g_P_3 + g_P_4 + g_P_5 + g_P_6 + g_P_7 + g_P_8;
int gActual = gTotal/16;
int blu_P_C = data[row][col].blue * 4;
int blu_P_1 = data[row-1][col-1].blue;
int blu_P_2 = 2 * data[row-1][col].blue;
int blu_P_3 = data[row-1][col+1].blue;
int blu_P_4 = 2 * data[row][col-1].blue;
int blu_P_5 = 2 * data[row][col+1].blue;
int blu_P_6 = data[row+1][col-1].blue;
int blu_P_7 = 2 * data[row+1][col].blue;
int blu_P_8 = data[row+1][col+1].blue;
int bluTotal = blu_P_C + blu_P_1 + blu_P_2 + blu_P_3 + blu_P_4 + blu_P_5 + blu_P_6 + blu_P_7 + blu_P_8;
int bluActual = bluTotal/16;
newData[row][col].red = redActual;
newData[row][col].green = gActual;
newData[row][col].blue = bluActual;