private bool GetResult(bool _IsGraphicResult)
        {
            bool _Result = true;

            if (null == BlobResults || BlobResults.GetBlobs().Count < 0)
            {
                return(false);
            }
            InspResults.BlobCount       = BlobResults.GetBlobs().Count;
            InspResults.BlobArea        = new double[BlobResults.GetBlobs().Count];
            InspResults.Width           = new double[BlobResults.GetBlobs().Count];
            InspResults.Height          = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMinX        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMinY        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMaxX        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMaxY        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobCenterX     = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobCenterY     = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMessCenterX = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMessCenterY = new double[BlobResults.GetBlobs().Count];
            InspResults.OriginX         = new double[BlobResults.GetBlobs().Count];
            InspResults.OriginY         = new double[BlobResults.GetBlobs().Count];
            InspResults.IsGoods         = new bool[BlobResults.GetBlobs().Count];
            if (_IsGraphicResult)
            {
                InspResults.ResultGraphic = new CogCompositeShape[InspResults.BlobCount];
            }

            for (int iLoopCount = 0; iLoopCount < InspResults.BlobCount; ++iLoopCount)
            {
                BlobResult = BlobResults.GetBlobByID(iLoopCount);

                InspResults.BlobArea[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.Area, iLoopCount);
                InspResults.Width[iLoopCount]           = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeWidth, iLoopCount);
                InspResults.Height[iLoopCount]          = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeHeight, iLoopCount);
                InspResults.BlobMinX[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMinX, iLoopCount);
                InspResults.BlobMinY[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMinY, iLoopCount);
                InspResults.BlobMaxX[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMaxX, iLoopCount);
                InspResults.BlobMaxY[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMaxY, iLoopCount);
                InspResults.BlobCenterX[iLoopCount]     = (InspResults.BlobMaxX[iLoopCount] + InspResults.BlobMinX[iLoopCount]) / 2;
                InspResults.BlobCenterY[iLoopCount]     = (InspResults.BlobMaxY[iLoopCount] + InspResults.BlobMinY[iLoopCount]) / 2;
                InspResults.BlobMessCenterX[iLoopCount] = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.CenterMassX, iLoopCount);
                InspResults.BlobMessCenterY[iLoopCount] = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.CenterMassY, iLoopCount);

                if (_IsGraphicResult)
                {
                    InspResults.ResultGraphic[iLoopCount] = BlobResult.CreateResultGraphics(CogBlobResultGraphicConstants.Boundary);
                }
            }

            return(_Result);
        }
        public CogCompositeShape[] GetGraphicResult()
        {
            CogCompositeShape[] _GraphicResult = new CogCompositeShape[BlobResults.GetBlobs().Count];
            CogBlobResult       _BlobResult    = new CogBlobResult();

            for (int iLoopCount = 0; iLoopCount < BlobResults.GetBlobs().Count; ++iLoopCount)
            {
                BlobResult = BlobResults.GetBlobByID(iLoopCount);
                _GraphicResult[iLoopCount] = BlobResult.CreateResultGraphics(CogBlobResultGraphicConstants.Boundary);
            }

            return(_GraphicResult);
        }
Exemple #3
0
        public void ViewResult(ADisplay aDisplay, bool isShowCenter, bool isShowRegion)
        {
            int nOption = 0;

            if (isShowCenter)
            {
                nOption = 2;
            }
            // 2015.02.09
            if (isShowRegion)
            {
                ShowRegion(aDisplay);
            }

            if (m_nFindCount > 0)
            {
                CogBlobResult cogBlobResult = new CogBlobResult();

                // 2016.03.22
                int[] pnID = new int[m_nFindCount];
                pnID = m_cogBlobTool.Results.GetBlobIDs(true);

                for (int i = 0; i < m_nFindCount; i++)
                {
                    // 2016.03.22 i => pnID[i]
                    cogBlobResult = m_cogBlobTool.Results.GetBlobByID(pnID[i]);

                    if (cogBlobResult != null)
                    {
                        CogCompositeShape cogCompositeShape = new CogCompositeShape();
                        cogCompositeShape = cogBlobResult.CreateResultGraphics((CogBlobResultGraphicConstants)(1 + 4 + nOption));
                        aDisplay.AddOverlay((ICogGraphicInteractive)cogCompositeShape, "");
                    }
                }

                // 2015.02.09

                /*
                 * if (isShowRegion)
                 * {
                 *  ShowRegion(aDisplay);
                 * }
                 */
            }
        }
        private bool GetResult(bool _IsGraphicResult = false)
        {
            bool _Result = true;

            if (null == BlobResult || BlobResults.GetBlobs().Count < 0)
            {
                return(false);
            }
            InspResults.IsGood          = true;
            InspResults.BlobCount       = BlobResults.GetBlobs().Count;
            InspResults.BlobArea        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobCenterX     = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobCenterY     = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMinX        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMinY        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMaxX        = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMaxY        = new double[BlobResults.GetBlobs().Count];
            InspResults.Width           = new double[BlobResults.GetBlobs().Count];
            InspResults.Height          = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMessCenterX = new double[BlobResults.GetBlobs().Count];
            InspResults.BlobMessCenterY = new double[BlobResults.GetBlobs().Count];
            InspResults.PrincipalWidth  = new double[BlobResults.GetBlobs().Count];
            InspResults.PrincipalHeight = new double[BlobResults.GetBlobs().Count];
            InspResults.Angle           = new double[BlobResults.GetBlobs().Count];
            InspResults.Degree          = new double[BlobResults.GetBlobs().Count];

            InspResults.IsLeadBentGood   = new bool[BlobResults.GetBlobs().Count];
            InspResults.LeadPitchTopX    = new double[BlobResults.GetBlobs().Count];
            InspResults.LeadPitchTopY    = new double[BlobResults.GetBlobs().Count];
            InspResults.LeadPitchBottomX = new double[BlobResults.GetBlobs().Count];
            InspResults.LeadPitchBottomY = new double[BlobResults.GetBlobs().Count];

            InspResults.LeadLength       = new double[BlobResults.GetBlobs().Count];
            InspResults.LeadLengthStartX = new double[BlobResults.GetBlobs().Count];
            InspResults.LeadLengthStartY = new double[BlobResults.GetBlobs().Count];

            if (_IsGraphicResult)
            {
                InspResults.ResultGraphic = new CogCompositeShape[InspResults.BlobCount];
            }

            for (int iLoopCount = 0; iLoopCount < InspResults.BlobCount; ++iLoopCount)
            {
                BlobResult = BlobResults.GetBlobByID(iLoopCount);

                InspResults.BlobArea[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.Area, iLoopCount);
                InspResults.Width[iLoopCount]           = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeWidth, iLoopCount);
                InspResults.Height[iLoopCount]          = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeHeight, iLoopCount);
                InspResults.BlobMinX[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMinX, iLoopCount);
                InspResults.BlobMinY[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMinY, iLoopCount);
                InspResults.BlobMaxX[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMaxX, iLoopCount);
                InspResults.BlobMaxY[iLoopCount]        = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPixelAlignedNoExcludeMaxY, iLoopCount);
                InspResults.BlobCenterX[iLoopCount]     = (InspResults.BlobMaxX[iLoopCount] + InspResults.BlobMinX[iLoopCount]) / 2;
                InspResults.BlobCenterY[iLoopCount]     = (InspResults.BlobMaxY[iLoopCount] + InspResults.BlobMinY[iLoopCount]) / 2;
                InspResults.BlobMessCenterX[iLoopCount] = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.CenterMassX, iLoopCount);
                InspResults.BlobMessCenterY[iLoopCount] = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.CenterMassY, iLoopCount);
                InspResults.PrincipalWidth[iLoopCount]  = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPrincipalAxisWidth, iLoopCount);
                InspResults.PrincipalHeight[iLoopCount] = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.BoundingBoxPrincipalAxisHeight, iLoopCount);
                InspResults.Angle[iLoopCount]           = BlobResults.GetBlobMeasure(CogBlobMeasureConstants.Angle, iLoopCount);
                InspResults.Degree[iLoopCount]          = InspResults.Angle[iLoopCount] * 180 / Math.PI;
                if (_IsGraphicResult)
                {
                    InspResults.ResultGraphic[iLoopCount] = BlobResult.CreateResultGraphics(CogBlobResultGraphicConstants.Boundary);
                }
            }

            return(_Result);
        }