Example #1
0
        /// <summary>
        /// foamliu, 2009/03/03, 边缘锐化.
        /// 从原图像中减去拉普拉斯算子处理后的结果.
        /// 我做的效果是图像锐化的同时产生了噪音. 与这个结果类似:
        ///
        /// http://www.dfanning.com/ip_tips/sharpen.html
        ///
        /// </summary>
        /// <param name="bmp"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static Bitmap SharpenEdges(Bitmap bmp)
        {
            int width, height;

            int[][][] mat, filtered = new int[3][][];
            Bitmap    newBmp;

            ImageConvert.Bitmap2MatColor(bmp, out mat, out width, out height);

            Convolution conv = new Convolution();

            conv.Calculate(mat[0], ConvKernel.Laplacian_4, out filtered[0]);
            conv.Calculate(mat[1], ConvKernel.Laplacian_4, out filtered[1]);
            conv.Calculate(mat[2], ConvKernel.Laplacian_4, out filtered[2]);

            NcvMatrix.MatSubtract(mat[0], filtered[0]);
            NcvMatrix.MatSubtract(mat[1], filtered[1]);
            NcvMatrix.MatSubtract(mat[2], filtered[2]);

            GrayScaleImageLib.Normalize(mat[0]);
            GrayScaleImageLib.Normalize(mat[1]);
            GrayScaleImageLib.Normalize(mat[2]);

            ImageConvert.Mat2BitmapColor(mat, width, height, out newBmp);

            return(newBmp);
        }
Example #2
0
        public static Bitmap SharpenMore(Bitmap bmp)
        {
            int width, height;

            int[][] mat, filtered;
            Bitmap  newBmp;

            ImageConvert.Bitmap2Mat(bmp, out mat, out width, out height);

            Convolution conv = new Convolution();

            conv.Calculate(mat, ConvKernel.Laplacian_8, out filtered);

            NcvMatrix.MatSubtract(mat, filtered);
            GrayScaleImageLib.Normalize(mat);

            ImageConvert.Mat2Bitmap(mat, width, height, out newBmp);

            return(newBmp);
        }