public override void Load(IServiceProvider provider) { imageViewer = new MultipleImageViewer { Dock = DockStyle.Fill }; imageViewer.PopulateMultipleImageViewer <MultiAnimalTrackingData>(); imageViewer.MaximizeDropDownMenuWidth(); imageViewer.SelectImageIndex(0); Random rnd = new Random(); var visualizerService = (IDialogTypeVisualizerService)provider.GetService(typeof(IDialogTypeVisualizerService)); if (visualizerService != null) { visualizerService.AddControl(imageViewer); } VisualizerCanvas.Load += (sender, e) => { labelTexture = new IplImageTexture(); GL.Enable(EnableCap.Blend); GL.Enable(EnableCap.PointSmooth); GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha); }; VisualizerCanvas.RenderFrame += (sender, e) => RenderFrame(); base.Load(provider); }
public override void Show(object value) { centroidData = (CentroidData)value; if (centroidData != null) { if (imageViewer.SelectedImageViewer == nameof(centroidData.BackgroundSubtractedImage) && centroidData.BackgroundSubtractedImage != null) { imageViewer.Update(centroidData.BackgroundSubtractedImage); } else if (imageViewer.SelectedImageViewer == nameof(centroidData.ThresholdImage) && centroidData.ThresholdImage != null) { imageViewer.Update(centroidData.ThresholdImage); } else if (imageViewer.SelectedImageViewer == nameof(centroidData.LargestContour) && centroidData.ThresholdImage != null) { IplImage contourImage = new IplImage(centroidData.ThresholdImage.Size, centroidData.ThresholdImage.Depth, 3); contourImage.SetZero(); if (centroidData.LargestContour != null) { CV.DrawContours(contourImage, centroidData.LargestContour.Contour, Scalar.All(255), Scalar.All(0), 0, -1); CV.DrawContours(contourImage, centroidData.LargestContour.Contour, new Scalar(0, 0, 255), Scalar.All(0), 0, 1 * VisualizerCanvas.Height / 640); } imageViewer.Update(contourImage); } else { if (imageViewer.SelectedImageIndex != 0) { imageViewer.SelectImageIndex(0); } imageViewer.Update(centroidData.Image); } } }