Exemplo n.º 1
0
        private void Uninitialize()
        {
            _initialized = false;

            if (_timer != null)
            {
                _timer.Stop();
                _timer.Tick -= DispatcherTimer_Tick;
                _timer       = null;
            }

            if (_renderer != null)
            {
                _renderer.Dispose();
                _renderer = null;
            }

            if (_effect != null)
            {
                _effect.Dispose();
                _effect = null;
            }

            _filters         = null;
            _chromaKeyFilter = null;
            _rotationFilter  = null;
            _bitmap          = null;

            if (_source != null)
            {
                _source.Dispose();
                _source = null;
            }
        }
Exemplo n.º 2
0
        public mModifyRotation(int angle)
        {
            Effect         = new RotationFilter();
            Effect.Angle   = angle;
            Effect.Enabled = true;

            filter = Effect;
        }
        public MirrorBelowFilter()
            : base()
        {
            Name = "Below";
            ShortDescription = "Below";

            _rotateLeftFilter = new RotationFilter(90);
            _mirrorFilter = new MirrorFilter();
            _rotateRightFilter = new RotationFilter(-90);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Initializes this RotationControl
        /// </summary>
        /// <param name="bitmap">The Bitmap to generate the visualization for</param>
        public override void Initialize(Bitmap bitmap)
        {
            base.Initialize(bitmap);

            if (filter == null)
            {
                filter = new RotationFilter {
                    Rotation = 0, RotateAroundCenter = false, PixelQuality = false
                };
            }
        }
Exemplo n.º 5
0
        public virtual void ApplyStandardFilters()
        {
            CompositionLayer.BlendMode = Blend;

            if (StandardModifiers[0])
            {
                ColorKeyFilter ColorMask = new ColorKeyFilter();
                ColorMask.Color          = new mImageColor(MaskColor).ToDynamicColor();
                ColorMask.ColorTolerance = (byte)MaskSample;

                CompositionLayer.Filters.Add(ColorMask);
            }

            if (StandardModifiers[1])
            {
                ClippingMaskFilter ImageMask      = new ClippingMaskFilter();
                ImageImageSource   MaskLayerImage = new ImageImageSource();

                MaskLayerImage.Image = new mConvert((Bitmap)MaskImage.Clone()).BitmapToWritableBitmap();
                ImageMask.MaskImage  = MaskLayerImage;

                CompositionLayer.Filters.Add(ImageMask);
            }

            if (StandardModifiers[5])
            {
                CompositionLayer.Filters.Add(new mModifyResize((mModifyResize.ResizingMode)Xform[5], (mModifyResize.ScalingMode)Xform[6], Xform[3], Xform[4]).filter);
            }

            if (StandardModifiers[2])
            {
                OpacityAdjustmentFilter OpacityMask = new OpacityAdjustmentFilter();
                OpacityMask.Opacity = (byte)Opacity;

                CompositionLayer.Filters.Add(OpacityMask);
            }

            if (StandardModifiers[3])
            {
                RotationFilter Rotation = new RotationFilter();
                Rotation.Angle = Xform[2];

                CompositionLayer.Filters.Add(Rotation);
            }

            if (StandardModifiers[4])
            {
                CompositionLayer.X = Xform[0];
                CompositionLayer.Y = Xform[1];
            }
        }
        private void Initialize()
        {
            // Initialize camera

            var rotation = App.Camera.SensorLocation == CameraSensorLocation.Back ?
                           App.Camera.SensorRotationInDegrees : -App.Camera.SensorRotationInDegrees;

            ViewfinderBrush.SetSource(App.Camera);
            ViewfinderBrushTransform.Rotation = rotation;

            // Setup image processing pipeline

            _source          = new CameraPreviewImageSource(App.Camera);
            _rotationFilter  = new RotationFilter(rotation);
            _chromaKeyFilter = new ChromaKeyFilter();

            _filters = new List <IFilter> {
                _rotationFilter, _chromaKeyFilter
            };

            _effect = new FilterEffect(_source)
            {
                Filters = _filters
            };

            _bitmap   = new WriteableBitmap((int)App.Camera.PreviewResolution.Width, (int)App.Camera.PreviewResolution.Height);
            _renderer = new WriteableBitmapRenderer(_effect, _bitmap, OutputOption.Stretch);

            FilteredImage.Source = _bitmap;

            _color = Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF);

            ColorBorder.Background = new SolidColorBrush(_color);

            // Start rendering timer

            _timer = new DispatcherTimer {
                Interval = TimeSpan.FromMilliseconds(10)
            };
            _timer.Tick += DispatcherTimer_Tick;
            _timer.Start();

            _initialized = true;
        }
Exemplo n.º 7
0
        }//find backCamera and frontCamera

        private async Task InitializePreviewAsync()
        {
            //initialize cameraSource
            cameraSource = new CameraPreviewImageSource();
            await cameraSource.InitializeAsync(currentCamera.Id);

            //supply rendering cameraSource`s frames
            var properties = await cameraSource.StartPreviewAsync();

            cameraSource.PreviewFrameAvailable += OnPreviewFrameAvailable;
            isPreviewing = true; isPreviEwenabled = false;
            HideProgressBar();

            //crop frames smartly
            int width; int height;

            if (properties.Width < Width || properties.Height < Height)
            {
                width = (int)properties.Width; height = (int)properties.Height;
            }
            else
            {
                width = 360; height = 640;
            }

            //connect rendered bitmap with image
            currentWriteableBitmap = new WriteableBitmap(width, height);
            image.Source           = currentWriteableBitmap;

            //create rotation effecr
            int            rotationIndex   = (currentCamera == backCamera) ? 90 : 270;
            RotationFilter _rotationFilter = new RotationFilter(rotationIndex);
            var            _filters        = new List <IFilter>();

            _filters.Add(_rotationFilter);
            var _effect = new FilterEffect(cameraSource);

            _effect.Filters = _filters;

            //finally create renderer based on effect and bitmap we are going to render
            bitmapRenderer = new WriteableBitmapRenderer(_effect, currentWriteableBitmap);
        }//initialize preview resources
Exemplo n.º 8
0
        private void поворотВлевоToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Filter filter = new RotationFilter(-Math.PI / 2);

            backgroundWorker1.RunWorkerAsync(filter);
        }
Exemplo n.º 9
0
        // add MaskFilter
        // add contour filter
        // draw contours

        // неплохо бы у мержделки лвл выбирать (что брать не только предыдущую)
        static void Main(string[] args)
        {
            // dnn tests
            DnnInfo dnn = new DnnInfo("model_bn.pb");


            //---------------------------------------------------------------------------
            String winName = "Test Window"; //The name of the window

            CvInvoke.NamedWindow(winName);  //Create the window using the specific name

            // bitmap to mat
            var bitmap     = new Bitmap(@"d:\GM\all\15752977512762.png");
            Mat fromBitmap = GetCvMatFromBitmap(bitmap);
            //CvInvoke.Imshow(winName, fromBitmap);
            //CvInvoke.WaitKey(0);


            var bittt = GetRGBBitmapFromCvMat(fromBitmap);

            bittt.Save("out.jpg");


            // graph test-------
            GraphFilter graph    = new GraphFilter();
            var         scFilter = graph.Add(FilterType.Source);

            scFilter["Source"] = fromBitmap;

            var threshFilter = graph.Add(FilterType.Threshold).ConnectBefore(graph.Add(FilterType.Bgr2Gray).ConnectBefore(scFilter));

            threshFilter["Type"]               = "AdaptiveGaussianBinaryInv";
            threshFilter["Threshold"]          = 125;
            threshFilter["ValueSet"]           = 255;
            threshFilter["Kern"]               = 5;
            threshFilter["SubtractedFromMean"] = 0;

            var outs = graph.GetOuts();

            CvInvoke.Imshow(winName, outs[0].Image);
            CvInvoke.WaitKey(0);

            threshFilter["Kern"] = 3;
            outs = graph.GetOuts();
            CvInvoke.Imshow(winName, outs[0].Image);
            CvInvoke.WaitKey(0);

            //-----------------------------------------------------------
            var laadFilter = new LoadBgrFilter();

            laadFilter["File"] = new FileInfo(@"d:\GM\all\15808995027720.jpg");

            var laadFilter2 = new LoadBgrFilter();

            laadFilter2["File"] = new FileInfo(@"d:\GM\all\15808863021350.png");


            // gray ------------------------------------
            var grayFilter = new Bgr2GrayFilter();

            grayFilter.ConnectBefore(laadFilter);
            var imgs00 = grayFilter.GetOut();

            CvInvoke.Imshow(winName, imgs00[0].Image);
            CvInvoke.WaitKey(0);


            //rotate -----------------------------------
            {
                var rotF1 = new RotationFilter();
                rotF1["Deg"]     = 45.0;
                rotF1["Scale"]   = 0.75;
                rotF1["NewSize"] = 1;
                rotF1["Width"]   = 500;
                rotF1["Height"]  = 500;
                rotF1.ConnectBefore(laadFilter);


                var rotF2 = new RotationFilter();
                rotF2["Deg"]     = 360.0 - 45.0;
                rotF2["Scale"]   = 0.75;
                rotF2["NewSize"] = 1;
                rotF2["Width"]   = 500;
                rotF2["Height"]  = 500;
                rotF2.ConnectBefore(laadFilter2);


                // MergeFilter
                var mergeFilter = new MergeFilter();
                mergeFilter.ConnectBefore(rotF1);
                mergeFilter.ConnectBefore(rotF2);
                mergeFilter["Alpha"] = 0.5;
                mergeFilter["Beta"]  = 0.5;
                mergeFilter["Gamma"] = 0.5;


                var imgs0 = mergeFilter.GetOut();

                var bittt01 = GetRGBBitmapFromCvMat(imgs0[0].Image);
                bittt01.Save("out1.jpg");

                CvInvoke.Imshow(winName, imgs0[0].Image);
                CvInvoke.WaitKey(0);
            }



            // resize
            {
                var resFinlt1 = new ResizeAbsFilter();
                resFinlt1["Width"]  = 240;
                resFinlt1["Height"] = 320;
                resFinlt1.ConnectBefore(laadFilter);
                resFinlt1.ConnectBefore(laadFilter2);
                var imgs = resFinlt1.GetOut();

                CvInvoke.Imshow(winName, imgs[0].Image);
                CvInvoke.WaitKey(0);

                CvInvoke.Imshow(winName, imgs[1].Image);
                CvInvoke.WaitKey(0);

                // MergeFilter
                var mergeFilter = new MergeFilter();
                mergeFilter.ConnectBefore(resFinlt1);
                mergeFilter["Alpha"] = 1.0;
                mergeFilter["Beta"]  = -1.0;
                mergeFilter["Gamma"] = 0.0;


                var imgs0 = mergeFilter.GetOut();

                var bittt02 = GetRGBBitmapFromCvMat(imgs0[0].Image);
                bittt02.Save("out2.jpg");

                CvInvoke.Imshow(winName, imgs0[0].Image);
                CvInvoke.WaitKey(0);
            }

            // blur
            {
                var blurFilter = new BlurFilter();
                blurFilter["Type"] = "Median";//"Gaussian";
                blurFilter["Kern"] = 6;
                blurFilter.ConnectBefore(laadFilter);

                var imgs0 = blurFilter.GetOut();

                var bittt03 = GetRGBBitmapFromCvMat(imgs0[0].Image);
                bittt03.Save("out3.jpg");

                CvInvoke.Imshow(winName, imgs0[0].Image);
                CvInvoke.WaitKey(0);

                Mat fromBitmap00 = GetCvMatFromBitmap(bittt03);
                CvInvoke.Imshow(winName, fromBitmap00);
                CvInvoke.WaitKey(0);
            }

            // Morphology
            {
                var morphFlt = new MorphologyFilter();
                morphFlt["Type"]     = "Erode";
                morphFlt["Kern"]     = 5;
                morphFlt["Count"]    = 2;
                morphFlt["KernType"] = "Ellipse";
                morphFlt.ConnectBefore(laadFilter);
                var imgs0 = morphFlt.GetOut();

                var bittt04 = GetRGBBitmapFromCvMat(imgs0[0].Image);
                bittt04.Save("out4.jpg");

                CvInvoke.Imshow(winName, imgs0[0].Image);
                CvInvoke.WaitKey(0);

                Mat fromBitmap00 = GetCvMatFromBitmap(bittt04);
                CvInvoke.Imshow(winName, fromBitmap00);
                CvInvoke.WaitKey(0);
            }

            // Threshold
            {
                var threshFlt = new ThresholdFilter();
                threshFlt["Type"]      = "AdaptiveGaussianBinaryInv";
                threshFlt["Threshold"] = 125;
                threshFlt["ValueSet"]  = 255;

                threshFlt["Kern"] = 5;
                threshFlt["SubtractedFromMean"] = 0;
                threshFlt.ConnectBefore(grayFilter);
                var imgs0 = threshFlt.GetOut();

                var bittt05 = GetRGBBitmapFromCvMat(imgs0[0].Image);
                bittt05.Save("out5.jpg");

                CvInvoke.Imshow(winName, imgs0[0].Image);
                CvInvoke.WaitKey(0);

                Mat fromBitmap00 = GetCvMatFromBitmap(bittt05);
                CvInvoke.Imshow(winName, fromBitmap00);
                CvInvoke.WaitKey(0);
            }

            // Grad
            {
                var gradFltr = new GradientFilter();
                gradFltr["Type"]  = "Laplacian"; // "Canny" "Sobel"
                gradFltr["Kern"]  = 1;
                gradFltr["Low"]   = 0;
                gradFltr["Hight"] = 255;
                gradFltr.ConnectBefore(laadFilter);
                var imgs0 = gradFltr.GetOut();

                var bittt06 = GetRGBBitmapFromCvMat(imgs0[0].Image);
                bittt06.Save("out6.jpg");

                CvInvoke.Imshow(winName, imgs0[0].Image);
                CvInvoke.WaitKey(0);


                Mat fromBitmap00 = GetCvMatFromBitmap(bittt06);
                CvInvoke.Imshow(winName, fromBitmap00);
                CvInvoke.WaitKey(0);
            }


            // My test------------------------------------
            {
                var gradFl = new GradientFilter();
                gradFl["Type"] = "Sobel";
                gradFl["Kern"] = 1;
                gradFl.ConnectBefore(laadFilter);

                var morphFlt = new MorphologyFilter();
                morphFlt["Type"]     = "Detate";
                morphFlt["Kern"]     = 5;
                morphFlt["Count"]    = 2;
                morphFlt["KernType"] = "Ellipse";
                morphFlt.ConnectBefore(gradFl);

                var mergeFlt = new MergeFilter();
                mergeFlt.ConnectBefore(laadFilter);
                mergeFlt.ConnectBefore(gradFl);
                mergeFlt["Alpha"] = 1.0;
                mergeFlt["Beta"]  = -1.0;
                mergeFlt["Gamma"] = 0.0;

                var blurFilter = new BlurFilter();
                blurFilter["Type"] = "Median";//"Gaussian";
                blurFilter["Kern"] = 6;
                blurFilter.ConnectBefore(mergeFlt);

                var mergeFlt2 = new MergeFilter();
                mergeFlt2.ConnectBefore(blurFilter);
                mergeFlt2.ConnectBefore(gradFl);
                mergeFlt2["Alpha"] = 0.5;
                mergeFlt2["Beta"]  = 0.5;
                mergeFlt2["Gamma"] = 0.0;

                var imgs0 = mergeFlt2.GetOut();

                var bittt7 = GetRGBBitmapFromCvMat(imgs0[0].Image);
                bittt7.Save("out7.jpg");

                CvInvoke.Imshow(winName, imgs0[0].Image);
                CvInvoke.WaitKey(0);


                Mat fromBitmap00 = GetCvMatFromBitmap(bittt7);
                CvInvoke.Imshow(winName, fromBitmap00);
                CvInvoke.WaitKey(0);
            }

            CvInvoke.WaitKey(0);             //Wait for the key pressing event
            CvInvoke.DestroyWindow(winName); //Destroy the window if key is pressed
            return;
        }
Exemplo n.º 10
0
        private void Uninitialize()
        {
            _initialized = false;

            if (_timer != null)
            {
                _timer.Stop();
                _timer.Tick -= DispatcherTimer_Tick;
                _timer = null;
            }

            if (_renderer != null)
            {
                _renderer.Dispose();
                _renderer = null;
            }

            if (_effect != null)
            {
                _effect.Dispose();
                _effect = null;
            }

            _filters = null;
            _chromaKeyFilter = null;
            _rotationFilter = null;
            _bitmap = null;

            if (_source != null)
            {
                _source.Dispose();
                _source = null;
            }
        }
Exemplo n.º 11
0
        private void Initialize()
        {
            // Initialize camera

            var rotation = App.Camera.SensorLocation == CameraSensorLocation.Back ?
                App.Camera.SensorRotationInDegrees : - App.Camera.SensorRotationInDegrees;

            ViewfinderBrush.SetSource(App.Camera);
            ViewfinderBrushTransform.Rotation = rotation;

            // Setup image processing pipeline

            _source = new CameraPreviewImageSource(App.Camera);
            _rotationFilter = new RotationFilter(rotation);
            _chromaKeyFilter = new ChromaKeyFilter();

            _filters = new List<IFilter> {_rotationFilter, _chromaKeyFilter};

            _effect = new FilterEffect(_source) {Filters = _filters};

            _bitmap = new WriteableBitmap((int)App.Camera.PreviewResolution.Width, (int)App.Camera.PreviewResolution.Height);
            _renderer = new WriteableBitmapRenderer(_effect, _bitmap, OutputOption.Stretch);

            FilteredImage.Source = _bitmap;

            _color = Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF);

            ColorBorder.Background = new SolidColorBrush(_color);

            // Start rendering timer

            _timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(10) };
            _timer.Tick += DispatcherTimer_Tick;
            _timer.Start();

            _initialized = true;
        }
Exemplo n.º 12
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            Composition composition = new Composition();
            var         myLayer     = new ImageLayer();


            myLayer.SourceFileName = Image1.ImageUrl;

            composition.Layers.Add(myLayer);
            //myLayer.Filters.Add(new ResizeFilter { Mode = ResizeMode.UseWidth, Width = SoundInTheory.DynamicImage.Unit.Pixel(1200) });



            if (CheckBox1.Checked)
            {
                myLayer.Filters.Add(new ColorTintFilter());
            }
            if (CheckBox2.Checked)
            {
                Image2.Height = int.Parse(TextBox1.Text);
                Image2.Width  = int.Parse(TextBox2.Text);
            }
            if (CheckBox3.Checked)
            {
                if (DropDownList1.SelectedValue.ToString() == "1")
                {
                    RotationFilter rf = new RotationFilter();
                    rf.Angle = 30;
                    myLayer.Filters.Add(rf);
                }
                else
                {
                    RotationFilter rf = new RotationFilter();
                    rf.Angle = 315;
                    myLayer.Filters.Add(rf);
                }
            }
            if (CheckBox4.Checked)
            {
                myLayer.Filters.Add(new SepiaFilter());
            }
            if (CheckBox5.Checked)
            {
                myLayer.Filters.Add(new EmbossFilter());
            }
            if (CheckBox6.Checked)
            {
                BorderFilter br = new BorderFilter();
                if (DropDownList2.SelectedValue.ToString() == "1")
                {
                    br.Fill.BackgroundColor = Colors.Red;
                }
                if (DropDownList2.SelectedValue.ToString() == "2")
                {
                    br.Fill.BackgroundColor = Colors.Blue;
                }
                if (DropDownList2.SelectedValue.ToString() == "3")
                {
                    br.Fill.BackgroundColor = Colors.Green;
                }
                if (DropDownList2.SelectedValue.ToString() == "4")
                {
                    br.Fill.BackgroundColor = Colors.Black;
                }
                if (DropDownList2.SelectedValue.ToString() == "0")
                {
                    Label7.Visible = true;
                }
                myLayer.Filters.Add(br);
            }



            string url = ImageUrlGenerator.GetImageUrl(composition);

            Image2.ImageUrl = url;
            Image2.Visible  = true;
        }