Lab[,] CompressLabArray (Lab[,] rawLabArray) { Lab[,] LabArray = new Lab[rawLabArray.GetLength(0)/5, rawLabArray.GetLength(1)/5]; Debug.Log (rawLabArray.GetLength (0) + " " + LabArray.GetLength (0)); //for every 5 by 5 box going from column top to bottom then row left to right for (int i = 0; i < rawLabArray.GetLength (0)-5; i=i+5) { for (int j = 0; j < rawLabArray.GetLength (1)-5; j=j+5) { Lab comps = new Lab(0,0,0); //for each box, for (int x = 0; x < 5; x++) { for (int y = 0; y < 5; y++) { comps += rawLabArray [i + x, j + y]; } } LabArray [i / 5, j / 5] = (comps / (new Lab (25, 25, 25)));//making not decimal } } Debug.Log (LabArray [25, 26].L + " " + LabArray [25, 26].a + " " + LabArray [25, 26].b + " "); return LabArray; }