public Boolean LoadFromVPPFile(string FileName, CogRecordDisplay mCogRecordDisplay)//檔案參數載入 { string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString(); string TempFileName = (string)FileName; try { //從CogTool裡面讀出來 string strFolderPath = @"D:\VPS_File\Product\IDTool\" + @FileName + @"\"; CogToolBlock ToolBlock1 = new CogToolBlock(); FileName = strFolderPath + FileName + "_IDT.vpp"; ToolBlock1 = (CogToolBlock)CogSerializer.LoadObjectFromFile(FileName);//開啟ToolBlock vpp檔案 //依序載入 mIDTool = (CogIDTool)ToolBlock1.Tools[TempFileName + "_IDTool_"]; this.ROI_Create(mCogRecordDisplay); SaveLog.Msg_("Data of IDTool Loaded : " + @FileName); ToolBlock1 = null; mIDTool_Status = true; return(true); } catch (Exception ex) { SaveLog.Msg_("Load IDTool Data Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString()); mIDTool_Status = false; return(false); } }
public bool unLoad() { string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString(); try { mIDTool = null; mID_ROI = null; return(true); } catch (Exception ex) { SaveLog.Msg_("IDTool Load Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString()); return(false); } }
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); }
private bool VpDecode(Bitmap img, out List <string> codeList) { bool status = false; List <string> _codeList = new List <string>(); DateTime startTime = DateTime.Now; bool deCodeStatus1d = false; bool deCodeStatusDM = false; bool deCodeStatusQR = false; //一维码工具 if (_deCode1d) { CogImage8Grey cogImg1 = new CogImage8Grey(img); Task task1d = new Task(() => { CogIDTool cogIDTool1d = new CogIDTool(); cogIDTool1d.RunParams.Timeout = _timeOut1d; cogIDTool1d.RunParams.TimeoutEnabled = true; cogIDTool1d.RunParams.DisableAllCodes(); cogIDTool1d.RunParams.Code128.Enabled = true; cogIDTool1d.RunParams.Code39.Enabled = true; cogIDTool1d.RunParams.Code93.Enabled = true; cogIDTool1d.RunParams.UpcEan.Enabled = true; cogIDTool1d.RunParams.ProcessingMode = CogIDProcessingModeConstants.IDMax; cogIDTool1d.RunParams.NumToFind = 15; cogIDTool1d.InputImage = cogImg1; cogIDTool1d.Run(); if (cogIDTool1d.Results != null) { foreach (var result in cogIDTool1d.Results) { lock (_codeList) { _codeList.Add(result.DecodedData.DecodedString); } } } deCodeStatus1d = true; }); task1d.Start(); } else { deCodeStatus1d = true; } //DM码工具 if (_deCodeDM) { CogImage8Grey cogImgDm = new CogImage8Grey(img); Task taskDM = new Task(() => { CogIDTool cogIDToolDM = new CogIDTool(); cogIDToolDM.RunParams.Timeout = _timeOutDM; cogIDToolDM.RunParams.TimeoutEnabled = true; cogIDToolDM.RunParams.DisableAllCodes(); cogIDToolDM.RunParams.DataMatrix.Enabled = true; cogIDToolDM.RunParams.ProcessingMode = CogIDProcessingModeConstants.IDMax; cogIDToolDM.RunParams.NumToFind = 3; cogIDToolDM.InputImage = cogImgDm; cogIDToolDM.Run(); if (cogIDToolDM.Results != null) { foreach (var result in cogIDToolDM.Results) { lock (_codeList) { _codeList.Add(result.DecodedData.DecodedString); } } } deCodeStatusDM = true; }); taskDM.Start(); } else { deCodeStatusDM = true; } //QR码工具 if (_deCodeQR) { CogImage8Grey cogImgQr = new CogImage8Grey(img); Task taskQR = new Task(() => { CogIDTool cogIDToolQR = new CogIDTool(); cogIDToolQR.RunParams.Timeout = _timeOutQR; cogIDToolQR.RunParams.TimeoutEnabled = true; cogIDToolQR.RunParams.DisableAllCodes(); cogIDToolQR.RunParams.QRCode.Enabled = true; cogIDToolQR.RunParams.ProcessingMode = CogIDProcessingModeConstants.IDMax; cogIDToolQR.RunParams.NumToFind = 3; cogIDToolQR.InputImage = cogImgQr; cogIDToolQR.Run(); if (cogIDToolQR.Results != null) { foreach (var result in cogIDToolQR.Results) { lock (_codeList) { _codeList.Add(result.DecodedData.DecodedString); } } } deCodeStatusQR = true; }); taskQR.Start(); } else { deCodeStatusQR = true; } while (true) { if (deCodeStatus1d && deCodeStatusDM && deCodeStatusQR) { status = true; break; } if ((DateTime.Now - startTime).TotalMilliseconds > _pageDecodeTimeOut) { status = false; break; } Thread.Sleep(10); } codeList = _codeList; return(status); }