예제 #1
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);
        }
예제 #2
0
 private void btnUpload1_Click(object sender, EventArgs e)
 {
     try
     {
         var            cogImageFileTool = new CogImageFileTool();
         OpenFileDialog openFileDialog   = new OpenFileDialog();
         openFileDialog.Multiselect        = true;
         openFileDialog.Filter             = "All Image Files|*.bmp;*.ico;*.gif;*.jpeg;*.jpg;*.png;*.tif;*.tiff|" + LanguageHelper.GetString("um_AF") + "(*.*)|*.*||";
         openFileDialog.AutoUpgradeEnabled = true;
         openFileDialog.Title = LanguageHelper.GetString("um_SP");
         if (openFileDialog.ShowDialog() == DialogResult.OK)
         {
             pbLoadingBar1.Visible = true;
             Camera1ImageQueue     = new Queue <CogImage8Grey>();
             new Thread(new ThreadStart(delegate()
             {
                 for (var index = 0; index < openFileDialog.FileNames.Count(); index++)
                 {
                     cogImageFileTool.Operator.Open(openFileDialog.FileNames[index], CogImageFileModeConstants.Read);
                     cogImageFileTool.Run();
                     if (cogImageFileTool.OutputImage.GetType().Equals(typeof(CogImage24PlanarColor)))
                     {
                         CogImageConvertTool cogImageConvertTool = new CogImageConvertTool();
                         cogImageConvertTool.InputImage          = cogImageFileTool.OutputImage;
                         cogImageConvertTool.Run();
                         Camera1ImageQueue.Enqueue((CogImage8Grey)cogImageConvertTool.OutputImage);
                     }
                     else
                     {
                         Camera1ImageQueue.Enqueue((CogImage8Grey)cogImageFileTool.OutputImage);
                     }
                 }
                 if (this.InvokeRequired)
                 {
                     this.Invoke(new MethodInvoker(delegate()
                     {
                         pbLoadingBar1.Visible = false;
                         if (Camera1ImageQueue.Count > 0)
                         {
                             btnRun1.Enabled = true;
                             btnRun1.Text    = LanguageHelper.GetString("um_Run") + "(" + Camera1ImageQueue.Count.ToString() + ")";
                         }
                     }));
                 }
                 else
                 {
                     pbLoadingBar1.Visible = false;
                     if (Camera1ImageQueue.Count > 0)
                     {
                         btnRun1.Enabled = true;
                         btnRun1.Text    = LanguageHelper.GetString("um_Run") + "(" + Camera1ImageQueue.Count.ToString() + ")";
                     }
                 }
             })).Start();
         }
     }
     catch (Exception ex)
     {
         pbLoadingBar1.Visible = false;
         MessageBox.Show(ex.Message);
     }
 }