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; } }
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); }
/// <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 }; } }
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; }
}//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
private void поворотВлевоToolStripMenuItem_Click(object sender, EventArgs e) { Filter filter = new RotationFilter(-Math.PI / 2); backgroundWorker1.RunWorkerAsync(filter); }
// 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; }
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; }
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; }