private void Awake() { synchronizationContext = SynchronizationContext.Current; resultsDockingManager.SetEnableDocking(resultImageBoxPanel, true); resultsDockingManager.DockControl(resultImageBoxPanel, this, DockingStyle.Right, 400); resultsDockingManager.SetMenuButtonVisibility(resultImageBoxPanel, false); resultsDockingManager.SetDockLabel(resultImageBoxPanel, "Result Image"); resultsDockingManager.SetDockVisibility(resultImageBoxPanel, true); resultsDockingManager.SetEnableDocking(originalImageBoxPanel, true); resultsDockingManager.DockControl(originalImageBoxPanel, this, DockingStyle.Left, 400); resultsDockingManager.SetMenuButtonVisibility(originalImageBoxPanel, false); resultsDockingManager.SetDockLabel(originalImageBoxPanel, "Original Image"); resultsDockingManager.SetDockVisibility(originalImageBoxPanel, true); resultsDockingManager.SetEnableDocking(differenceImageBoxPanel, true); resultsDockingManager.DockControlInAutoHideMode(differenceImageBoxPanel, DockingStyle.Left, 400); resultsDockingManager.SetMenuButtonVisibility(differenceImageBoxPanel, false); resultsDockingManager.SetDockLabel(differenceImageBoxPanel, "Difference Image"); resultsDockingManager.SetDockVisibility(differenceImageBoxPanel, true); alignmentPipelineResultsControl.OnSelectedMethodResultChangedEvent += (AlignmentMethodResultControl alignmentMethodResultControl, Mat inputImg, Mat outputImg, Mat diffImg) => { originalImageBox.Image = inputImg.Bitmap; //originalImageBox.ZoomToFit(); resultImageBox.Image = outputImg.Bitmap; //resultImageBox.ZoomToFit(); differenceImageBox.Image = diffImg.Bitmap; //differenceImageBox.ZoomToFit(); SelectedAlignmentMethodResult = alignmentMethodResultControl.GetAlignmentMethodResult; }; }
private void TestBtn_Click(object sender, EventArgs e) { if (testAlignmentPipeline.Count <= 0) { return; } List <AlignmentPipelineResults.AlignmentMethodResult> alignmentMethodResults = new List <AlignmentPipelineResults.AlignmentMethodResult>(); IOutputArray outputImageArr; outputImage = testImage; CvInvoke.Resize(testImage, outputImage, templateImage.Size); //outputImage = testImage.Resize(templateImage.Width, templateImage.Height, Emgu.CV.CvEnum.Inter.Cubic); for (int i = 0; i < testAlignmentPipeline.Count; i++) { Exception exception = null; AlignmentPipelineResults.AlignmentMethodResult alignmentMethodResult = null; AlignmentMethod alignmentMethod = testAlignmentPipeline[i]; if (alignmentMethod.PipelineIndex == -1 || ommittedAlignmetMethodIndeces.Contains(alignmentMethod.PipelineIndex)) { continue; } if (alignmentMethod.GetAlignmentMethodType == AlignmentMethodType.Anchors) { var aIM = (AnchorAlignmentMethod)alignmentMethod; bool isSuccess = aIM.ApplyMethod(outputImage, out outputImageArr, out RectangleF[] detectedAnchors, out RectangleF[] warpedAnchors, out RectangleF[] scaledMainAnchorRegions, out RectangleF scaledMainTestRegion, out Mat homography, out long alignmentTime, out exception);