Beispiel #1
0
        public InspectionAutoPattern()
        {
            HistogramProc   = new CogHistogram();
            HistogramResult = new CogHistogramResult();

            OneImageProc = new CogIPOneImageTool();

            BlobProc    = new CogBlob();
            BlobResults = new CogBlobResults();
            BlobResult  = new CogBlobResult();

            PMAlignProc = new CogPMAlignTool();
            PMAlignProc.Pattern.TrainAlgorithm = CogPMAlignTrainAlgorithmConstants.PatMax;
            PMAlignResult = new CogPMAlignResult();
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //수정 :
        //목적 : 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public override bool HLInitialize(HLDevice.Abstract.CVisionLibraryAbstract.CInitializeParameter objInitializeParameter)
        {
            bool bReturn = false;

            do
            {
                m_objInitializeParameter = (HLDevice.Abstract.CVisionLibraryAbstract.CInitializeParameter)objInitializeParameter.Clone();

                m_objImageProcess = new CogIPOneImageTool();

                m_iIndex = m_objInitializeParameter.iIndex;
                m_objInitializeParameter = ( CInitializeParameter )objInitializeParameter.Clone();
                HLLoadRecipe(m_objInitializeParameter.strRecipePath, m_objInitializeParameter.strRecipeName);

                bReturn = true;
            } while(false);

            return(bReturn);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //수정 :
        //목적 : Load
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public override bool HLLoadRecipe(string strRecipePath, string strRecipeName)
        {
            bool bReturn = false;

            do
            {
                string strFileName = strRecipePath + "\\" + strRecipeName + "\\" + string.Format("IPOneImage{0}.VPP", m_iIndex);

                try {
                    m_objImageProcess = CogSerializer.LoadObjectFromFile(strFileName) as CogIPOneImageTool;
                } catch (System.Exception ex) {
                    Trace.WriteLine(ex.Message + " -> " + ex.StackTrace);
                    MakeErrorMessage("HLLoadRecipe", 5503, ex.Message);
                    break;
                }

                bReturn = true;
            } while(false);

            return(bReturn);
        }
Beispiel #4
0
        public string ReadBarcode(int nMode)
        {
            ICogImage           cogOutputImage;
            CogImageConvertTool ConvertTool = new CogImageConvertTool();
//            Cog2DSymbolTool cog2DSymbol = new Cog2DSymbolTool();
//          CogBarcodeTool cog1dSymbol = new CogBarcodeTool();
            CogIDTool         cogIDTool = new CogIDTool();
            CogImageFileTool  SaveImage = new CogImageFileTool();
            CogIPOneImageTool oneTool   = new CogIPOneImageTool();

            CogRectangle cogRect = new CogRectangle();


            CogIPOneImageEqualize         EqulParam        = new CogIPOneImageEqualize();
            CogIPOneImageMultiplyConstant MultiplyConstant = new CogIPOneImageMultiplyConstant();

            MultiplyConstant.ConstantValue = 2;

            string strReadBarcode = "";

            if (BarcodeRect.Width <= 0)
            {
                return(strReadBarcode);
            }
            if (m_imgScreenShot == null)
            {
                return("");
            }
            ConvertTool.InputImage = m_imgScreenShot;
            ConvertTool.Run();

            if (nMode == 1)
            {
                oneTool.InputImage = ConvertTool.OutputImage;
                //oneTool.Operators.Add(EqulParam);
                oneTool.Operators.Add(MultiplyConstant);
                oneTool.Run();
                cogOutputImage = oneTool.OutputImage;// ConvertTool.OutputImage;
            }
            else if (nMode == 2)
            {
                oneTool.InputImage = ConvertTool.OutputImage;
                oneTool.Operators.Add(EqulParam);
                //oneTool.Operators.Add(MultiplyConstant);
                oneTool.Run();
                cogOutputImage = oneTool.OutputImage;// ConvertTool.OutputImage;
            }
            else
            {
                cogOutputImage = ConvertTool.OutputImage;
            }
            if (BarcodeRect.Width > 0 && BarcodeRect.Height > 0)
            {
                cogRect.SetXYWidthHeight(BarcodeRect.X, BarcodeRect.Y, BarcodeRect.Width, BarcodeRect.Height);
                try
                {
                    ICogRegion cogRegion;
                    cogRegion = new CogRectangle();
                    cogRegion.FitToBoundingBox(cogRect);

                    cogIDTool.InputImage = (CogImage8Grey)cogOutputImage;
                    cogIDTool.RunParams.DisableAllCodes();
                    cogIDTool.RunParams.DataMatrix.Enabled = true;

                    cogIDTool.RunParams.DataMatrix.ProcessControlMetrics = CogIDDataMatrixProcessControlMetricsConstants.None;
                    cogIDTool.Region = cogRegion;

                    cogIDTool.Run();

                    if (cogIDTool.Results != null && cogIDTool.Results.Count == 1)
                    {
                        strReadBarcode = cogIDTool.Results[0].DecodedData.DecodedString;
                    }

                    /*
                     * if (cog2DSymbol.Pattern.Trained)
                     *  cog2DSymbol.Pattern.Untrain();
                     * cog2DSymbol.InputImage = (CogImage8Grey)cogOutputImage;
                     * cog2DSymbol.Pattern.TrainImage = (CogImage8Grey)cogOutputImage;
                     * cog2DSymbol.SearchRegion = cogRegion;// barcodeRegion;
                     * cog2DSymbol.Pattern.Train();
                     * if (cog2DSymbol.Pattern.Trained)
                     * {
                     *  try
                     *  {
                     *      cog2DSymbol.SearchRegion = cogRegion;// barcodeRegion;
                     *      cog2DSymbol.Run();
                     *      if (cog2DSymbol.Result != null)
                     *          strReadBarcode = cog2DSymbol.Result.DecodedString;
                     *
                     *  }
                     *  catch (Cognex.VisionPro.Exceptions.CogException)
                     *  {
                     *
                     *  }
                     * }
                     * if (strReadBarcode == "")
                     * {
                     *  cog1dSymbol.InputImage = (CogImage8Grey)cogOutputImage;
                     *  cog1dSymbol.Region = cogRegion;
                     *  cog1dSymbol.Run();
                     *  strReadBarcode = cog1dSymbol.Results.ToString();
                     * }*/
                }
                catch (Cognex.VisionPro.Exceptions.CogException)
                {
                }
            }
            return(strReadBarcode);
        }