Ejemplo n.º 1
0
        //绘制halcon轮廓
        public void DrawAqDisplayContours(AqVision.Controls.AqDisplay aqDisplay, HObject drawRegions, HTuple drawTolerance,
                                          AqVision.AqColorConstants color = AqVision.AqColorConstants.Green, int lineWidth = 1)
        {
            HTuple rows;
            HTuple cols;
            HTuple breakPoints;

            GetRegionPoints(drawRegions, drawTolerance, out rows, out cols, out breakPoints);

            int sum = 0;

            for (int i = 0; i < breakPoints.Length; i++)
            {
                int _count = breakPoints[i];


                for (int j = 0; j < _count - 1; j++)
                {
                    double sx = cols[j + sum];
                    double sy = rows[j + sum];
                    double ex = cols[j + sum + 1];
                    double ey = rows[j + sum + 1];
                    DrawLine((float)sx, (float)sy, (float)ex, (float)ey, aqDisplay, color, lineWidth);
                }
                sum += _count;
            }
        }
Ejemplo n.º 2
0
        //绘制aidi轮廓
        public void DrawAqDisplayContours(AqVision.Controls.AqDisplay aqDisplay, List <RootObject> objList,
                                          AqVision.AqColorConstants color = AqVision.AqColorConstants.Green, int lineWidth = 1)
        {
            for (int i = 0; i < objList.Count(); i++)
            {
                for (int j = 0; j < objList[i].contours.Count - 1; j++)
                {
                    string temp = objList[i].contours[j].x;

                    float sx = float.Parse(objList[i].contours[j].x);
                    float sy = float.Parse(objList[i].contours[j].y);
                    float ex = float.Parse(objList[i].contours[j + 1].x);
                    float ey = float.Parse(objList[i].contours[j + 1].y);

                    DrawLine(sx, sy, ex, ey, aqDisplay, color, lineWidth);
                }
                //再设计一个点,补全多边形
                int   n      = objList[i].contours.Count;
                float nx     = float.Parse(objList[i].contours[n - 1].x);
                float ny     = float.Parse(objList[i].contours[n - 1].y);
                float zero_x = float.Parse(objList[i].contours[0].x);
                float zero_y = float.Parse(objList[i].contours[0].y);
                DrawLine(nx, ny, zero_x, zero_y, aqDisplay, color, lineWidth);
            }
        }
Ejemplo n.º 3
0
 //aidi
 public void ShowAllGraph(AqVision.Controls.AqDisplay aqDisplay, Bitmap bitmap, List <RootObject> objList,
                          AqVision.AqColorConstants color = AqVision.AqColorConstants.Green, int lineWidth = 1)
 {
     CleanWindow(aqDisplay);
     ShowBitmap(aqDisplay, bitmap);
     DrawAqDisplayContours(aqDisplay, objList, color, lineWidth);
     UpdateWindow(aqDisplay);
 }
Ejemplo n.º 4
0
 //halcon
 public void ShowAllGraph(AqVision.Controls.AqDisplay aqDisplay, Bitmap bitmap, HObject drawRegions, HTuple drawTolerance,
                          AqVision.AqColorConstants color = AqVision.AqColorConstants.Green, int lineWidth = 1)
 {
     CleanWindow(aqDisplay);
     ShowBitmap(aqDisplay, bitmap);
     DrawAqDisplayContours(aqDisplay, drawRegions, drawTolerance, color, lineWidth);
     UpdateWindow(aqDisplay);
 }
Ejemplo n.º 5
0
 public void UpdateWindow(AqVision.Controls.AqDisplay aqDisplay)
 {
     if (aqDisplay.InvokeRequired)
     {
         aqDisplay.BeginInvoke(new Action(() => { aqDisplay.Update(); }));
     }
     else
     {
         aqDisplay.Update();
     }
 }
Ejemplo n.º 6
0
        void DrawLine(float sx, float sy, float ex, float ey, AqVision.Controls.AqDisplay aqDisplay, AqVision.AqColorConstants color, int lineWidth)
        {
            AqLineSegment lineSegment = new AqLineSegment();

            lineSegment.StartX = sx;
            lineSegment.StartY = sy;
            lineSegment.EndX   = ex;
            lineSegment.EndY   = ey;

            lineSegment.Color = color;
            lineSegment.LineWidthInScreenPixels = lineWidth;
            aqDisplay.InteractiveGraphics.Add(lineSegment, "", true);
        }
Ejemplo n.º 7
0
 public void ShowBitmap(AqVision.Controls.AqDisplay aqDisplay, Bitmap bitmap)
 {
     if (aqDisplay.InvokeRequired)
     {
         aqDisplay.BeginInvoke(new Action(() =>
         {
             aqDisplay.Image = bitmap;
             aqDisplay.FitToScreen();
         }));
     }
     else
     {
         aqDisplay.Image = bitmap;
         aqDisplay.FitToScreen();
     }
 }
Ejemplo n.º 8
0
 public void CleanWindow(AqVision.Controls.AqDisplay aqDisplay)
 {
     aqDisplay.InteractiveGraphics.Clear();
 }
 /// <summary>
 /// 绘制轮廓
 /// </summary>
 /// <param name="objList"></param>
 /// <param name="color"></param>
 /// <param name="lineWidth"></param>
 /// <param name="aqDisplay"></param>
 public void DrawContours(List <RootObject> objList, AqVision.AqColorConstants color, int lineWidth, AqVision.Controls.AqDisplay aqDisplay)
 {
     for (int i = 0; i < objList.Count(); i++)
     {
         for (int j = 0; j < objList[i].contours.Count - 1; j++)
         {
             int sx = (int)Convert.ToDouble(objList[i].contours[j].x);
             int sy = (int)Convert.ToDouble(objList[i].contours[j].y);
             int ex = (int)Convert.ToDouble(objList[i].contours[j + 1].x);
             int ey = (int)Convert.ToDouble(objList[i].contours[j + 1].y);
             DrawLine(sx, sy, ex, ey, color, lineWidth, aqDisplay);
         }
         //再设计一个点,补全多边形
         int n      = objList[i].contours.Count;
         int nx     = (int)Convert.ToDouble(objList[i].contours[n - 1].x);
         int ny     = (int)Convert.ToDouble(objList[i].contours[n - 1].y);
         int zero_x = (int)Convert.ToDouble(objList[i].contours[0].x);
         int zero_y = (int)Convert.ToDouble(objList[i].contours[0].y);
         DrawLine(nx, ny, zero_x, zero_y, color, lineWidth, aqDisplay);
     }
 }