private ImageMatrix MultiplyImageToMask(ImageMatrix p, ComposedMask masks) { var res = new ImageMatrix(p.Width * 2, p.Height * 2); try { for (int i = 0; i < p.Width; i++) { for (int j = 0; j < p.Height; j++) { res[2 * i, 2 * j] = ApplyFilterToPixel(i, j, p, masks.A); res[2 * i + 1, 2 * j] = ApplyFilterToPixel(i, j, p, masks.B); res[2 * i, 2 * j + 1] = ApplyFilterToPixel(i, j, p, masks.C); res[2 * i + 1, 2 * j + 1] = ApplyFilterToPixel(i, j, p, masks.D); } } } catch (Exception ex) { throw new Exception("Помилка при проведенні згортки:\n\n" + ex.Message); } return(res); }
public ImageMatrix Visit(ComposedMask mask) { return(MultiplyImageToMask(_image, mask)); }