コード例 #1
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
        public static ImageFiliter GetFiliterFromString(string name)
        {
            ImageFiliter ifilter = new ImageFiliter();

            switch (name)
            {
            case "OrderedDithering": ifilter = ImageFiliter.OrderedDithering; break;

            case "Threshold": ifilter = ImageFiliter.Threshold; break;

            case "ThresholdWithCarry": ifilter = ImageFiliter.ThresholdWithCarry; break;

            case "BayerDithering": ifilter = ImageFiliter.BayerDithering; break;

            case "FloydSteinbergDithering": ifilter = ImageFiliter.FloydSteinbergDithering; break;

            case "BurkesDithering": ifilter = ImageFiliter.BurkesDithering; break;

            case "JarvisJudiceNinkeDithering": ifilter = ImageFiliter.JarvisJudiceNinkeDithering; break;

            case "SierraDithering": ifilter = ImageFiliter.SierraDithering; break;

            case "StuckiDithering": ifilter = ImageFiliter.StuckiDithering; break;

            case "Convolution": ifilter = ImageFiliter.Convolution; break;

            default: ifilter = ImageFiliter.Threshold; break;
            }
            return(ifilter);
        }
コード例 #2
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
        public static ImageFiliter GetFiliterFromIndex(int index)
        {
            ImageFiliter ifilter = new ImageFiliter();

            switch (index)
            {
            case 0: ifilter = ImageFiliter.OrderedDithering; break;

            case 1: ifilter = ImageFiliter.Threshold; break;

            case 2: ifilter = ImageFiliter.ThresholdWithCarry; break;

            case 3: ifilter = ImageFiliter.BayerDithering; break;

            case 4: ifilter = ImageFiliter.FloydSteinbergDithering; break;

            case 5: ifilter = ImageFiliter.BurkesDithering; break;

            case 6: ifilter = ImageFiliter.JarvisJudiceNinkeDithering; break;

            case 7: ifilter = ImageFiliter.SierraDithering; break;

            case 8: ifilter = ImageFiliter.StuckiDithering; break;

            case 9: ifilter = ImageFiliter.Convolution; break;

            default: ifilter = ImageFiliter.OrderedDithering; break;
            }
            return(ifilter);
        }
コード例 #3
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
        public static Bitmap ApplyFiliter(ImageFiliter imgFilter, Bitmap bmp, byte Value, byte Value2)
        {
            Bitmap newImage = null;
            //ContrastCorrection filter2 = new ContrastCorrection(1.0);
            //newImage = filter2.Apply(bmp);
            if (imgFilter != ImageFiliter.None)
            {
                IFilter filter3 = Grayscale.CommonAlgorithms.Y;
                newImage = filter3.Apply(bmp);

                if (imgFilter == ImageFiliter.Threshold)
                {
                    IFilter filter = null;
                    if (Value == 0) filter = new Threshold();
                    else filter = new Threshold(Value);
                    newImage = filter.Apply(newImage);

                    //IterativeThreshold filter = new IterativeThreshold(Value2, Value);
                    //// apply the filter
                    // newImage = filter.Apply(newImage);
                }
                if (imgFilter == ImageFiliter.ThresholdWithCarry)
                {
                    IFilter filter = new ThresholdWithCarry();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.OrderedDithering)
                {
                    IFilter filter = new OrderedDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.BayerDithering)
                {
                    IFilter filter = new BayerDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.FloydSteinbergDithering)
                {
                    IFilter filter = new FloydSteinbergDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.BurkesDithering)
                {
                    IFilter filter = new BurkesDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.JarvisJudiceNinkeDithering)
                {
                    IFilter filter = new JarvisJudiceNinkeDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.SierraDithering)
                {
                    IFilter filter = new SierraDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.StuckiDithering)
                {
                    IFilter filter = new StuckiDithering();
                    newImage = filter.Apply(newImage);

                }
                else if (imgFilter == ImageFiliter.Convolution)
                {
                    // create filter
                    //OtsuThreshold filter = new OtsuThreshold();
                    //// apply the filter
                    //filter.ApplyInPlace(newImage);

                    //// create filter
                    //IterativeThreshold filter = new IterativeThreshold(0);
                    //// apply the filter
                    //newImage = filter.Apply(newImage);

                    int[,] kernel = {
                            { -2, -1,  0 },
                            { -1,  1,  1 },
                            {  0,  1,  2 }
                                };
                    // create filter
                    Convolution filter = new Convolution(kernel);
                    // apply the filter
                    filter.ApplyInPlace(newImage);
                }
                newImage = BitmapTo1Bpp(newImage);
            }
            else newImage = BitmapTo1Bpp(bmp);
            //轉換成 1bit bps
            return newImage;
        }
コード例 #4
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
 public static Bitmap ApplyFiliter(ImageFiliter imgFilter, Bitmap bmp, byte Value)
 {
     return ApplyFiliter(imgFilter, bmp, Value, 0);
 }
コード例 #5
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
 public static Bitmap ApplyFiliter(ImageFiliter imgFilter, Bitmap bmp)
 {
     return ApplyFiliter(imgFilter, bmp, 0);
 }
コード例 #6
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
        public static ImageFiliter GetFiliterFromString(string name)
        {
            ImageFiliter ifilter = new ImageFiliter();
            switch (name)
            {
                case "OrderedDithering": ifilter = ImageFiliter.OrderedDithering; break;
                case "Threshold": ifilter = ImageFiliter.Threshold; break;
                case "ThresholdWithCarry": ifilter = ImageFiliter.ThresholdWithCarry; break;
                case "BayerDithering": ifilter = ImageFiliter.BayerDithering; break;
                case "FloydSteinbergDithering": ifilter = ImageFiliter.FloydSteinbergDithering; break;
                case "BurkesDithering": ifilter = ImageFiliter.BurkesDithering; break;
                case "JarvisJudiceNinkeDithering": ifilter = ImageFiliter.JarvisJudiceNinkeDithering; break;
                case "SierraDithering": ifilter = ImageFiliter.SierraDithering; break;
                case "StuckiDithering": ifilter = ImageFiliter.StuckiDithering; break;
                case "Convolution": ifilter = ImageFiliter.Convolution; break;
                default: ifilter = ImageFiliter.Threshold; break;

            }
            return ifilter;
        }
コード例 #7
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
 public static ImageFiliter GetFiliterFromIndex(int index)
 {
     ImageFiliter ifilter = new ImageFiliter();
     switch (index)
     {
         case 0: ifilter = ImageFiliter.OrderedDithering; break;
         case 1: ifilter = ImageFiliter.Threshold; break;
         case 2: ifilter = ImageFiliter.ThresholdWithCarry; break;
         case 3: ifilter = ImageFiliter.BayerDithering; break;
         case 4: ifilter = ImageFiliter.FloydSteinbergDithering; break;
         case 5: ifilter = ImageFiliter.BurkesDithering; break;
         case 6: ifilter = ImageFiliter.JarvisJudiceNinkeDithering; break;
         case 7: ifilter = ImageFiliter.SierraDithering; break;
         case 8: ifilter = ImageFiliter.StuckiDithering; break;
         case 9: ifilter = ImageFiliter.Convolution; break;
         default: ifilter = ImageFiliter.OrderedDithering; break;
     }
     return ifilter;
 }
コード例 #8
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
        public static Bitmap ApplyFiliter(ImageFiliter imgFilter, Bitmap bmp, byte Value, byte Value2)
        {
            Bitmap newImage = null;

            //ContrastCorrection filter2 = new ContrastCorrection(1.0);
            //newImage = filter2.Apply(bmp);
            if (imgFilter != ImageFiliter.None)
            {
                IFilter filter3 = Grayscale.CommonAlgorithms.Y;
                newImage = filter3.Apply(bmp);

                if (imgFilter == ImageFiliter.Threshold)
                {
                    IFilter filter = null;
                    if (Value == 0)
                    {
                        filter = new Threshold();
                    }
                    else
                    {
                        filter = new Threshold(Value);
                    }
                    newImage = filter.Apply(newImage);

                    //IterativeThreshold filter = new IterativeThreshold(Value2, Value);
                    //// apply the filter
                    // newImage = filter.Apply(newImage);
                }
                if (imgFilter == ImageFiliter.ThresholdWithCarry)
                {
                    IFilter filter = new ThresholdWithCarry();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.OrderedDithering)
                {
                    IFilter filter = new OrderedDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.BayerDithering)
                {
                    IFilter filter = new BayerDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.FloydSteinbergDithering)
                {
                    IFilter filter = new FloydSteinbergDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.BurkesDithering)
                {
                    IFilter filter = new BurkesDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.JarvisJudiceNinkeDithering)
                {
                    IFilter filter = new JarvisJudiceNinkeDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.SierraDithering)
                {
                    IFilter filter = new SierraDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.StuckiDithering)
                {
                    IFilter filter = new StuckiDithering();
                    newImage = filter.Apply(newImage);
                }
                else if (imgFilter == ImageFiliter.Convolution)
                {
                    // create filter
                    //OtsuThreshold filter = new OtsuThreshold();
                    //// apply the filter
                    //filter.ApplyInPlace(newImage);

                    //// create filter
                    //IterativeThreshold filter = new IterativeThreshold(0);
                    //// apply the filter
                    //newImage = filter.Apply(newImage);

                    int[,] kernel =
                    {
                        { -2, -1, 0 },
                        { -1,  1, 1 },
                        {  0,  1, 2 }
                    };
                    // create filter
                    Convolution filter = new Convolution(kernel);
                    // apply the filter
                    filter.ApplyInPlace(newImage);
                }
                newImage = BitmapTo1Bpp(newImage);
            }
            else
            {
                newImage = BitmapTo1Bpp(bmp);
            }
            //轉換成 1bit bps
            return(newImage);
        }
コード例 #9
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
 public static Bitmap ApplyFiliter(ImageFiliter imgFilter, Bitmap bmp, byte Value)
 {
     return(ApplyFiliter(imgFilter, bmp, Value, 0));
 }
コード例 #10
0
ファイル: Image.cs プロジェクト: cylee/PictureCarrier
 public static Bitmap ApplyFiliter(ImageFiliter imgFilter, Bitmap bmp)
 {
     return(ApplyFiliter(imgFilter, bmp, 0));
 }