예제 #1
0
        public static void TestChannelModifier()
        {
            var bmp = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile(colorImgName);

            var            image = bmp.ToImage <Bgr, byte>();
            UnmanagedImage uIm   = UnmanagedImage.FromManagedImage(bmp);

            measure(() =>
            {
                var hsvIm = image.Convert <Hsv, byte>();

                var hue = new Image <Gray, byte>(hsvIm.Size);
                hue.SetValue(180 / 2);

                hsvIm[Hsv.IdxH] = hue;
                var modifiedIm  = hsvIm.Convert <Bgr, byte>();
            },
                    () =>
            {
                AForge.Imaging.Filters.HueModifier hm = new AForge.Imaging.Filters.HueModifier(180);
                hm.Apply(uIm);
            },
                    100,
                    "Image<,> Hue modifier",
                    "AForge Hue modifier");
        }
        public static void TestChannelModifier()
        {
            var bmp = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile(colorImgName);

            var image = bmp.ToImage<Bgr, byte>();
            UnmanagedImage uIm = UnmanagedImage.FromManagedImage(bmp);

            measure(() =>
            {
                var hsvIm = image.Convert<Hsv, byte>();

                var hue = new Image<Gray, byte>(hsvIm.Size);
                hue.SetValue(180 / 2);

                hsvIm[Hsv.IdxH] = hue;
                var modifiedIm = hsvIm.Convert<Bgr, byte>();
            },
            () =>
            {
                AForge.Imaging.Filters.HueModifier hm = new AForge.Imaging.Filters.HueModifier(180);
                hm.Apply(uIm);
            },
            100,
            "Image<,> Hue modifier",
            "AForge Hue modifier");
        }
        private async Task ProcessImage()
        {
            //If we are already waiting on another process request, then stop here.
            if (isImageProcessing)
            {
                return;
            }
            isImageProcessing = true;

            //If enough time has not passed since the last process then we must enter a waiting state
            if (stopwatch.ElapsedMilliseconds < previewDelay)
            {
                for (int wait = 0; wait < previewDelay; wait += previewDelayWait)
                {
                    if (stopwatch.ElapsedMilliseconds >= previewDelay)
                    {
                        break;
                    }
                    await Task.Delay(previewDelayWait);
                }
            }

            //Create System.Drawing.Bitmap
            Bitmap bitmap = (Bitmap)OriginalTextureBackup;
            // Apply filters
            var hueFilter = new AForge.Imaging.Filters.HueModifier(HueValue);


            bitmap = hueFilter.Apply(bitmap);

            //Convert back to WPF Bitmap
            CurrentTexture.DdsImage = (WriteableBitmap)bitmap;

            //Restart the timer
            isImageProcessing = false;
            stopwatch.Restart();
        }
예제 #4
0
파일: Form1.cs 프로젝트: ramyothman/RBM
        private void btnTest_Click(object sender, EventArgs e)
        {
            Bitmap imageoriginal = new Bitmap(imageTest1.Image);
            Image image = imageTest1.Image;

            //Bitmap bmp = new Bitmap(image.Width, image.Height);
            //using (Graphics g = Graphics.FromImage(bmp))
            //{
            //    g.Clear(Color.Transparent);
            //    g.InterpolationMode = InterpolationMode.NearestNeighbor;
            //    g.PixelOffsetMode = PixelOffsetMode.None;
            //    g.DrawImage(image, Point.Empty);
            //}
            Bitmap n = ChangeColor(imageoriginal, colorPickOld.Color, colorPickNew.Color);
            AForge.Imaging.Filters.HueModifier filter = new AForge.Imaging.Filters.HueModifier(142);
            // apply the filter
            System.Drawing.Bitmap newImage = filter.Apply(imageoriginal);

            //int height = imageoriginal.Height;
            //int width = imageoriginal.Width;
            //for (int i = 0; i < width; i++)
            //{
            //    for (int j = 0; j < height; j++)
            //    {
            //        Color origC = imageoriginal.GetPixel(i, j);
            //        Color newC = GetNearestOfBWR(origC, ref imageoriginal);
            //        imageoriginal.SetPixel(i, j, newC);
            //    }
            //}

            imageTest2.Image = (Image)ChangeColor(imageoriginal, new Bitmap(imageTest1.Image.Width, imageTest1.Image.Height), colorPickOld.Color, colorPickNew.Color, colorPicNotChange.Color);

            //imageTest2.Image = TestChangeColor(c, 0, 10, (byte)colorPickNew.Color.GetHue());
        }
예제 #5
0
        private void btn_uygula_Click(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex == 0) // Gri seçildi.
            {
                Bitmap image = new Bitmap(pictureBox1.Image);
                Bitmap gri   = griYap(image);

                pictureBox2.Image = gri;
            }
            if (comboBox1.SelectedIndex == 1) // Binary seçildi.
            {
                Bitmap image  = new Bitmap(pictureBox1.Image);
                Bitmap binary = binaryYap(image);
                pictureBox2.Image = binary;
            }
            if (comboBox1.SelectedIndex == 2) // Sobel Kenar seçildi.
            {
                Bitmap image = new Bitmap(pictureBox1.Image);
                Bitmap sobel = sobelEdgeDetection(image);

                pictureBox2.Image = sobel;
            }
            if (comboBox1.SelectedIndex == 3) // Sobel Kenar seçildi.
            {
                Bitmap image  = new Bitmap(pictureBox1.Image);
                Bitmap median = medianFilter(image);

                pictureBox2.Image = median;
            }
            if (comboBox1.SelectedIndex == 4) // Sepia Fitreleme seçildi.
            {
                // load an image
                System.Drawing.Bitmap image = new Bitmap(pictureBox1.Image);
                // create filter
                AForge.Imaging.Filters.Sepia filter = new AForge.Imaging.Filters.Sepia();
                // apply filter
                System.Drawing.Bitmap newImage = filter.Apply(image);


                pictureBox2.Image = newImage;
            }
            if (comboBox1.SelectedIndex == 5) // Blur Fitreleme seçildi.
            {
                // load an image
                System.Drawing.Bitmap image = new Bitmap(pictureBox1.Image);
                // create filter
                AForge.Imaging.Filters.Blur filter = new AForge.Imaging.Filters.Blur();
                // apply filter
                System.Drawing.Bitmap newImage = filter.Apply(image);


                pictureBox2.Image = newImage;
            }
            if (comboBox1.SelectedIndex == 6) // Keskinleştirme Fitreleme seçildi.
            {
                // load an image
                System.Drawing.Bitmap image = new Bitmap(pictureBox1.Image);
                // create filter
                AForge.Imaging.Filters.Sharpen filter = new AForge.Imaging.Filters.Sharpen();
                // apply filter
                System.Drawing.Bitmap newImage = filter.Apply(image);

                pictureBox2.Image = newImage;
            }
            if (comboBox1.SelectedIndex == 7) // Hue Modifier Fitreleme seçildi.
            {
                // load an image
                System.Drawing.Bitmap image = new Bitmap(pictureBox1.Image);
                // create filter
                AForge.Imaging.Filters.HueModifier filter = new AForge.Imaging.Filters.HueModifier();
                // apply filter
                System.Drawing.Bitmap newImage = filter.Apply(image);

                pictureBox2.Image = newImage;
            }
        }