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); }
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); }