private Pixel[][] CreateStartSymmetricMask() { Pixel[][] symmetricMask = new Pixel[5][]; for (var i = 0; i < symmetricMask.Length; i++) { symmetricMask[i] = new Pixel[5]; for (var j = 0; j < symmetricMask[i].Length; j++) { symmetricMask[i][j] = new Pixel() { Value = 0 }; } } symmetricMask[0][0].Value = symmetricMask[0][4].Value = symmetricMask[4][0].Value = symmetricMask[4][4].Value = 1; symmetricMask[0][2].Value = symmetricMask[2][4].Value = symmetricMask[4][2].Value = symmetricMask[2][0].Value = 2; symmetricMask[2][2].Value = 4; return(symmetricMask); }
private Pixel[][] CreateStartRandomMask() { Pixel[][] randomMask = new Pixel[6][]; for (var i = 0; i < randomMask.Length; i++) { randomMask[i] = new Pixel[3]; } randomMask[1][1] = new Pixel() { Value = 5 }; randomMask[4][1] = new Pixel() { Value = 5 }; randomMask[0][0] = new Pixel() { Value = 10 }; randomMask[0][2] = new Pixel() { Value = 10 }; randomMask[5][0] = new Pixel() { Value = 10 }; randomMask[5][2] = new Pixel() { Value = 10 }; randomMask[2][0] = new Pixel() { Value = 5 }; randomMask[2][2] = new Pixel() { Value = 5 }; randomMask[3][0] = new Pixel() { Value = 10 }; randomMask[3][2] = new Pixel() { Value = 10 }; return(randomMask); }
private Pixel[][] CreateStartAsymmetricMask() { Pixel[][] asymmetricMask = new Pixel[2][]; for (var i = 0; i < asymmetricMask.Length; i++) { asymmetricMask[i] = new Pixel[6]; for (var j = 0; j < asymmetricMask[i].Length; j++) { asymmetricMask[i][j] = new Pixel() { Value = (i + j) % 2 == 0 ? 5 : 0 }; } } return(asymmetricMask); }
private Pixel[][] ToArrayMask(Mask mask) { int startX = mask.Pixels.Min(it => it.X); int startY = mask.Pixels.Min(it => it.Y); int width = mask.Pixels.Max(it => it.X) - startX + 1; int height = mask.Pixels.Max(it => it.Y) - startY + 1; Pixel[][] result = new Pixel[height][]; for (int y = 0; y < height; y++) { result[y] = new Pixel[width]; } foreach (var pixel in mask.Pixels) { result[pixel.Y - startY][pixel.X - startX] = new Pixel() { Value = pixel.Value }; } return(result); }