示例#1
0
 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();
 }
示例#2
0
 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();
 }
示例#3
0
 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();
 }
示例#4
0
 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();
 }
示例#5
0
 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();
 }
示例#6
0
        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);
        }