Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public ImageMatrix Visit(ComposedMask mask)
 {
     return(MultiplyImageToMask(_image, mask));
 }