Ejemplo n.º 1
0
        private void btn_apply_Click(object sender, EventArgs e)
        {
            NeighborOperations Filters = new NeighborOperations();
            Picture pic = new Picture();

               Color [,] input = pic.Buffering(temp);

            if (type_v == 1)
            { //mean filter
                Color[,] Result = Filters.MeanFilter(input, int.Parse(MaskWidth.Text), int.Parse(MaskHeight.Text), int.Parse(OrignX.Text), int.Parse(OriginY.Text));
                temp = pic.convert_Buffer_to_Bitmap(Result, Result.GetLength(0), Result.GetLength(1));
                pic_modified.Image = temp;

            }
            else if (type_v == 2)
            { //gaussian option1
                Color[,] Result = Filters.GaussianFilter1(input,int.Parse(MaskWidth.Text),double.Parse(Sigma.Text),int.Parse(OrignX.Text), int.Parse(OriginY.Text));
                temp = pic.convert_Buffer_to_Bitmap(Result, Result.GetLength(0), Result.GetLength(1));
                pic_modified.Image = temp;
            }
            else if (type_v == 3)
            { //gaussian option2

                Color[,] Result = Filters.GaussianFilter2(input, double.Parse(Sigma.Text), int.Parse(OrignX.Text), int.Parse(OriginY.Text));

                temp = pic.convert_Buffer_to_Bitmap(Result, Result.GetLength(0), Result.GetLength(1));
                pic_modified.Image = temp;
            }
        }
Ejemplo n.º 2
0
        public Bitmap bit_plane_slicing(Color[,] buffer, int _one_byte, string type)
        {
            Picture p = new Picture();
            int width = buffer.GetLength(0);
            int height = buffer.GetLength(1);
            Color[,] res = new Color[width, height];
            for (int i = 0; i < width; i++)
            {
                for (int j = 0; j < height; j++)
                {
                    if (type == "r")
                    {
                        int result = _one_byte & buffer[i, j].R;
                        if (result == _one_byte)
                            res[i, j] = Color.FromArgb(255, 0, 0);
                        else
                            res[i, j] = Color.FromArgb(0, 0, 0);

                    }
                    else if (type == "g")
                    {
                        int result = _one_byte & buffer[i, j].G;
                        if (result == _one_byte)
                            res[i, j] = Color.FromArgb(0, 255, 0);
                        else
                            res[i, j] = Color.FromArgb(0, 0, 0);
                    }
                    else if (type == "b")
                    {
                        int result = _one_byte & buffer[i, j].B;
                        if (result == _one_byte)
                            res[i, j] = Color.FromArgb(0, 0, 255);
                        else
                            res[i, j] = Color.FromArgb(0, 0, 0);
                    }
                }
            }
            return p.convert_Buffer_to_Bitmap(res, res.GetLength(0), res.GetLength(1));
        }