コード例 #1
0
        private void fourConsistentToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            var imageToDisplay = Lab4.Dylatacja(new FastBitmap(GetImage()), Lab4.Spojnosc.Czterospojne);
            var form           = new ImageForm(new Image <Bgr, byte>(imageToDisplay.Unlock()));

            form.Show();
        }
コード例 #2
0
        private void eightConsistentToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            var imageToDisplay = Lab4.Erozja(new FastBitmap(GetImage()), Lab4.Spojnosc.Osmiospojne);
            var form           = new ImageForm(new Image <Bgr, byte>(imageToDisplay.Unlock()));

            form.Show();
        }
コード例 #3
0
        private unsafe void robertsToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Bitmap result;
            var    grayImg = new Image <Gray, byte>(GetImage());

            lock (grayImg)
            {
                result = grayImg.Bitmap;
                var data = result.LockBits(new Rectangle(0, 0, grayImg.Width, grayImg.Height),
                                           ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
                var p      = (byte *)data.Scan0.ToPointer();
                var offset = data.Stride - result.Width * 3;
                for (var i = 0; i < result.Height - 1; i++)
                {
                    for (var j = 0; j < result.Width - 1; j++)
                    {
                        var Gx = (int)Math.Pow(p[0] - (p + 3 + data.Stride)[0], 2);
                        var Gy = (int)Math.Pow((p + 3)[0] - (p + data.Stride)[0], 2);
                        var f  = Gx + Gy;
                        p[0] = p[1] = p[2] = (byte)f;
                        p   += 3;
                    }
                    p += offset;
                }
                result.UnlockBits(data);
            }

            ImageForm form = new ImageForm(new Image <Bgr, byte>(result));

            form.Show();
        }
コード例 #4
0
        private void negationToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            var negatedImage = Lab2.Negacja(GetImage());
            var form         = new ImageForm(new Image <Bgr, byte>(negatedImage));

            form.Show();
        }
コード例 #5
0
        private void skeletizationToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var fbmp = Lab4.Skelatanize(GetImage());
            var form = new ImageForm(new Image <Bgr, byte>(fbmp));

            form.Show();
        }
コード例 #6
0
        private void eightConsistentToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var imageAfterDilation = Lab4.Dylatacja(new FastBitmap(GetImage()), Lab4.Spojnosc.Osmiospojne);
            var result             = Lab4.Erozja(new FastBitmap(imageAfterDilation.Unlock()), Lab4.Spojnosc.Osmiospojne);
            var form = new ImageForm(new Image <Bgr, byte>(result.Unlock()));

            form.Show();
        }
コード例 #7
0
 private void medianFilterToolStripMenuItem_Click(object sender, EventArgs e)
 {
     valueForm = new MedianFilteringValueForm(3, 11, "Type Kernel size", false, true);
     if (valueForm.ShowDialog() == DialogResult.OK)
     {
         Image <Bgr, byte> image = new Image <Bgr, byte>(GetImage());
         ImageForm         form  = new ImageForm(image.SmoothMedian(valueForm.Value));
         form.Show();
     }
 }
コード例 #8
0
 public EdgeDetectionForm(Bitmap bmp)
 {
     InitializeComponent();
     CreateMatrixTable(mask1, ref tableLayoutPanel1, false);
     CreateMatrixTable(mask2, ref tableLayoutPanel2, false);
     CreateMatrixTable(mask3, ref tableLayoutPanel3, false);
     img  = new Image <Bgr, float>(bmp);
     form = new ImageForm();
     form.Show();
 }
コード例 #9
0
 public SharpeningForm(Bitmap bmp)
 {
     InitializeComponent();
     CreateMatrixTable(mask1, ref tableLayoutPanel1, false);
     CreateMatrixTable(mask2, ref tableLayoutPanel2, false);
     CreateMatrixTable(mask3, ref tableLayoutPanel3, false);
     img  = new Image <Gray, float>(bmp);
     form = new ImageForm();
     form.Show();
 }
コード例 #10
0
 public SmootingFormv2(Bitmap bmp)
 {
     InitializeComponent();
     CreateMatrixTable(mask1, ref tableLayoutPanel1, false);
     CreateMatrixTable(mask2, ref tableLayoutPanel2, false);
     CreateMatrixTable(mask3, ref tableLayoutPanel3, false);
     CreateMatrixTable(GetMatrixByKValue(0), ref tableLayoutPanel4, true);
     InitializeComponent();
     img  = new Image <Gray, float>(bmp);
     form = new ImageForm();
     form.Show();
 }
コード例 #11
0
        private void sobelToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            var img = GetImage();

            Image <Gray, byte>  _imgGray  = new Image <Gray, byte>(img);
            Image <Gray, float> _imgSobel = new Image <Gray, float>(img.Width, img.Height);

            _imgSobel = _imgGray.Sobel(1, 1, 3);
            var form = new ImageForm(new Image <Bgr, byte>(_imgSobel.Bitmap));

            form.Show();
        }
コード例 #12
0
        /*private void universalNeighbourOperationToolStripMenuItem_Click_1(object sender, EventArgs e)
         * {
         *  MaskCreator form = new MaskCreator();
         *  if (form.ShowDialog() == DialogResult.OK)
         *  {
         *      var fastbitmap = new FastBitmap(GetImage());
         *      var effectImage = Lab3.ApplyMask(fastbitmap, form.Mask, form.Divisor);
         *      effectImage.Unlock();
         *      ImageForm imgForm = new ImageForm(new Image<Bgr, byte>(effectImage.Bitmap));
         *      imgForm.Show();
         *  }
         * }*/

        private void universalNeighbourOperationToolStripMenuItem_Click_2(object sender, EventArgs e)
        {
            MaskCreator form = new MaskCreator();

            if (form.ShowDialog() == DialogResult.OK)
            {
                var fastbitmap  = new FastBitmap(GetImage());
                var effectImage = Lab3.ApplyMask(fastbitmap, form.Mask, form.Divisor);
                effectImage.Unlock();
                ImageForm imgForm = new ImageForm(new Image <Bgr, byte>(effectImage.Bitmap));
                imgForm.Show();
            }
        }
コード例 #13
0
 private void openToolStripMenuItem_Click(object sender, EventArgs e)
 {
     openFileDialog1.Title  = "Select a picture";
     openFileDialog1.Filter = "All supported graphics|*.jpg;*.jpeg;*.png;*.jfif;*.bmp|" +
                              "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg;|" +
                              "Portable Network Graphic (*.png)|*.png";
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         Cursor = Cursors.WaitCursor;
         foreach (string filename in openFileDialog1.FileNames)
         {
             _image = new Image <Bgr, byte>(filename);
             ImageForm form = new ImageForm(_image);
             form.TopLevel = false;
             this.panel1.Controls.Add(form);
             form.Show();
         }
         Cursor = Cursors.Default;
     }
 }
コード例 #14
0
 public StrechingForm()
 {
     InitializeComponent();
     form = new ImageForm();
     form.Show();
 }
コード例 #15
0
 public TresholdForm()
 {
     InitializeComponent();
     form = new ImageForm();
     form.Show();
 }
コード例 #16
0
 public PosterizationForm()
 {
     InitializeComponent();
     form = new ImageForm();
     form.Show();
 }
コード例 #17
0
 public ThresholdGrayLevelForm()
 {
     InitializeComponent();
     form = new ImageForm();
     form.Show();
 }
コード例 #18
0
        private unsafe void prewittToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            int m1w1 = 1;
            int m1w2 = 1;
            int m1w3 = 1;

            int m1w4 = 1;
            int m1w5 = -2;
            int m1w6 = 1;

            int m1w7 = -1;
            int m1w8 = -1;
            int m1w9 = -1;
            //-----maska2 Prewitt S
            int m2w1 = -1;
            int m2w2 = -1;
            int m2w3 = -1;

            int m2w4 = 1;
            int m2w5 = -2;
            int m2w6 = 1;

            int m2w7 = 1;
            int m2w8 = 1;
            int m2w9 = 1;


            Bitmap bitmap = new Image <Gray, byte>(GetImage()).Bitmap;

            FastBitmap bmp = new FastBitmap(bitmap);

            FastBitmap wynik = bmp;
            int        x, y;
            float      oldmin, oldmax, oldrange, scale;
            float      newmin, newmax, newrange;

            float[,] pomtab = new float[bmp.Width, bmp.Height];
            float pom;

            for (x = 0; x < wynik.Width; x++)
            {
                for (y = 0; y < wynik.Height; y++)
                {
                    pom = ((bmp[x - 1, y - 1].R * m1w1 + bmp[x, y - 1].R * m1w2 + bmp[x + 1, y - 1].R * m1w3
                            + bmp[x - 1, y].R * m1w4 + bmp[x, y].R * m1w5 + bmp[x + 1, y].R * m1w6
                            + bmp[x - 1, y + 1].R * m1w7 + bmp[x, y + 1].R * m1w8 + bmp[x + 1, y + 1].R * m1w9) ^ 2

                           + (bmp[x - 1, y - 1].R * m2w1 + bmp[x, y - 1].R * m2w2 + bmp[x + 1, y - 1].R * m2w3
                              + bmp[x - 1, y].R * m2w4 + bmp[x, y].R * m2w5 + bmp[x + 1, y].R * m2w6
                              + bmp[x - 1, y + 1].R * m2w7 + bmp[x, y + 1].R * m2w8 + bmp[x + 1, y + 1].R * m2w9) ^ 2) ^ (1 / 2);
                    pomtab[x, y] = pom;
                }
            }

            //SKALOWANIE
            //1

            oldmin = pomtab[0, 0];
            oldmax = pomtab[0, 0];

            for (x = 0; x < wynik.Width; x++)
            {
                for (y = 0; y < wynik.Height; y++)
                {
                    if (pomtab[x, y] < oldmin)
                    {
                        oldmin = pomtab[x, y];
                    }
                    if (pomtab[x, y] > oldmax)
                    {
                        oldmax = pomtab[x, y];
                    }
                }
            }

            oldrange = oldmax - oldmin;
            newmin   = 0;
            newmax   = 255;
            newrange = newmax - newmin;

            for (x = 0; x < wynik.Width; x++)
            {
                for (y = 0; y < wynik.Height; y++)
                {
                    scale       = (pomtab[x, y] - oldmin) / oldrange;
                    wynik[x, y] = Color.FromArgb((int)((newrange * scale) + newmin), (int)((newrange * scale) + newmin), (int)((newrange * scale) + newmin));
                }
            }

            ImageForm from = new ImageForm(new Image <Bgr, byte>(wynik.Unlock()));

            from.Show();
        }