示例#1
0
        public void Blur()
        {
            float[,] kernel;
            kernel = new float[3, 3];
            for (int i = 0; i < kernel.GetLength(0); i++)
            {
                for (int j = 0; j < kernel.GetLength(0); j++)
                {
                    kernel[i, j] = 1.0f / 9.0f;
                }
            }

            MatrixFilter BlurStd = new MatrixFilter(kernel);

            for (int i = 0; i < bmp.Width; i++)
            {
                for (int j = 0; j < bmp.Height; j++)
                {
                    bmp.SetPixel(i, j, BlurStd.CalculateNewColor(bmp, i, j));
                }
            }
        }
示例#2
0
        public void AdaptiveBin()
        {
            float[,] kernel;
            kernel = new float[5, 5];

            MatrixFilter Adaptive = new MatrixFilter(kernel);

            for (int i = 0; i < bmp.Width; i++)
            {
                for (int j = 0; j < bmp.Height; j++)
                {
                    Color tmp = bmp.GetPixel(i, j);
                    if ((tmp.R + tmp.G + tmp.B) / 3 > Adaptive.CalculateNewTr(bmp, i, j))
                    {
                        bmp.SetPixel(i, j, Color.FromArgb(255, 255, 255));
                    }
                    else
                    {
                        bmp.SetPixel(i, j, Color.FromArgb(0, 0, 0));
                    }
                }
            }
        }