public void DrawRectangle1ROI(double row1 = 100, double col1 = 100, double row2 = 100, double col2 = 200) { if (bDrawing) { MessageHelper.ShowWarning("显示界面正在进行ROI操作!"); return; } if (Image == null) { return; } if (rectangle1 == null) { rectangle1 = new DrawRectangle1(Window, Image, row1, col1, row2, col2); } else { rectangle1.Row1 = row1; rectangle1.Col1 = col1; rectangle1.Row2 = row2; rectangle1.Col2 = col2; } bDrawing = true; DrawingShape = ROIShape.Retangle1; BindingRectangle1ROIEvent(); rectangle1.CreateROI(); }
public void DrawRectangle2ROI(double row = 100, double col = 100, double phi = 0, double length1 = 10, double length2 = 10) { if (bDrawing) { MessageHelper.ShowWarning("显示界面正在进行ROI操作!"); return; } if (Image == null) { return; } if (rectangle2 == null) { rectangle2 = new DrawRectangle2(Window, Image, row, col, phi, length1, length2); } else { rectangle2.CenterRow = row; rectangle2.CenterCol = col; rectangle2.Angle = phi; rectangle2.Length1 = length1; rectangle2.Length2 = length2; } bDrawing = true; DrawingShape = ROIShape.Retangle2; BindingRectangle2ROIEvent(); rectangle2.CreateROI(); }
public void DrawCircleROI(int row = 100, int col = 100, double radius = 10) { if (bDrawing) { MessageHelper.ShowWarning("显示界面正在进行ROI操作!"); return; } if (Image == null) { return; } if (circle == null) { circle = new DrawCircle(Window, Image, row, col, radius); } else { circle.Row = row; circle.Col = col; circle.Radius = radius; } bDrawing = true; DrawingShape = ROIShape.Circle; //添加参数事件 BindingCircleROIEvent(); circle.CreateROI(); }
public void DrawLineROI(double row1 = 100, double col1 = 100, double row2 = 100, double col2 = 200) { if (bDrawing) { MessageHelper.ShowWarning("显示界面正在进行ROI操作!"); return; } if (Image == null) { return; } if (line == null) { line = new DrawLine(Window, Image, row1, col1, row2, col2); } else { line.Row1 = row1; line.Col1 = col1; line.Row2 = row2; line.Col2 = col2; } bDrawing = true; DrawingShape = ROIShape.Line; BindingLineROIEvent(); line.CreateROI(); }
public void DrawEllipseROI(double row = 100, double col = 100, double phi = 10, double radius1 = 100, double radius2 = 100) { if (bDrawing) { MessageHelper.ShowWarning("显示界面正在进行ROI操作!"); return; } if (Image == null) { return; } if (ellipse == null) { ellipse = new DrawEllipse(Window, Image, row, col, phi, radius1, radius2); } else { ellipse.Row = row; ellipse.Col = col; ellipse.Angle = phi; ellipse.Radius1 = radius1; ellipse.Radius2 = radius2; } bDrawing = true; DrawingShape = ROIShape.Ellipse; BindingEllipseROIEvent(); ellipse.CreateROI(); }
private void hWindowControl1_HMouseUp(object sender, HMouseEventArgs e) { if (Image != null) { if (bDrawing && e.Button == MouseButtons.Right) { //触发画图完成事件 switch (DrawingShape) { case ROIShape.Circle: circle.DrawROIComplete(); //移除绑定事件 BindingCircleROIEvent(false); break; case ROIShape.Retangle1: rectangle1.DrawROIComplete(); BindingRectangle1ROIEvent(false); break; case ROIShape.Retangle2: rectangle2.DrawROIComplete(); BindingRectangle2ROIEvent(false); break; case ROIShape.Ellipse: ellipse.DrawROIComplete(); BindingEllipseROIEvent(false); break; case ROIShape.Line: line.DrawROIComplete(); BindingLineROIEvent(false); break; case ROIShape.Empty: break; default: break; } DrawingShape = ROIShape.Empty; bDrawing = false; } } }
//画区域,并返回区域 public HObject DrawRegion(ROIShape shape = ROIShape.Rectangle1, bool overWrite = false, string color = "green", string draw = "margin") { EnableDraw = true; this.Focus(); HOperatorSet.GenEmptyObj(out ho_region); try { if (ho_image != null) { HTuple width, height; HOperatorSet.GetImageSize(ho_image, out width, out height); SystemWidth = width[0].I; SystemHeight = height[0].I; if (overWrite) { HOperatorSet.DispObj(ho_image, hWindowHandle); } } HOperatorSet.SetDraw(hWindowHandle, draw); HOperatorSet.SetColor(hWindowHandle, color); HTuple row, column, radius, phi, length1, length2; switch (shape) { case ROIShape.Rectangle1: HOperatorSet.DrawRectangle1(hWindowHandle, out row, out column, out length1, out length2); HOperatorSet.GenRectangle1(out ho_region, row, column, length1, length2); this.RegionMessage.Add(row.D); this.RegionMessage.Add(column.D); this.RegionMessage.Add(length1.D); this.RegionMessage.Add(length2.D); break; case ROIShape.Rectangle2: HOperatorSet.DrawRectangle2(hWindowHandle, out row, out column, out phi, out length1, out length2); HOperatorSet.GenRectangle2(out ho_region, row, column, phi, length1, length2); this.RegionMessage.Add(row.D); this.RegionMessage.Add(column.D); this.RegionMessage.Add(phi.D); this.RegionMessage.Add(length1.D); this.RegionMessage.Add(length2.D); break; case ROIShape.Circle: HOperatorSet.DrawCircle(hWindowHandle, out row, out column, out radius); HOperatorSet.GenCircle(out ho_region, row, column, radius); this.RegionMessage.Add(row.D); this.RegionMessage.Add(column.D); this.RegionMessage.Add(radius.D); break; case ROIShape.Ellipse: HOperatorSet.DrawEllipse(hWindowHandle, out row, out column, out phi, out length1, out length2); HOperatorSet.GenEllipse(out ho_region, row, column, phi, length1, length2); this.RegionMessage.Add(row.D); this.RegionMessage.Add(column.D); this.RegionMessage.Add(phi.D); this.RegionMessage.Add(length1.D); this.RegionMessage.Add(length2.D); break; case ROIShape.Arbitrarily: HOperatorSet.DrawRegion(out ho_region, hWindowHandle); break; } HOperatorSet.DispRegion(ho_region, hWindowHandle); } finally { EnableDraw = false; } return(ho_region); }