示例#1
0
        }//CCD停止取像結束

        /// <summary>
        /// 開啟影像檔
        /// </summary>
        /// <param name="TempCCDDisplay">CCDDisplay畫面</param>
        /// <param name="FilePath">路徑</param>
        /// <returns>回傳是否開啟影像成功</returns>
        public static Boolean Image_Open_Function(Cognex.VisionPro.CogRecordDisplay TempCCDDisplay, string FilePath)//開啟影像檔
        {
            string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();

            #region 開啟影像檔
            try
            {
                //Cognex開起影像檔
                CogImageFileTool_Tool.Operator.Open(FilePath, CogImageFileModeConstants.Read);
                CogImageFileTool_Tool.Run();
                TempCCDDisplay.Image = (Cognex.VisionPro.CogImage8Grey)CogImageFileTool_Tool.OutputImage;

                //清除畫面調整大小
                TempCCDDisplay.Fit();
                TempCCDDisplay.StaticGraphics.Clear();
                TempCCDDisplay.InteractiveGraphics.Clear();

                SaveLog.Msg_("開啟影像 " + FilePath);
                return(true);
            }

            catch (Exception ex)
            {
                SaveLog.Msg_(ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                return(false);
            }


            #endregion 開啟影像檔
        }//開啟影像檔結束
示例#2
0
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog   openFileDialog1 = new OpenFileDialog();
            CogImageFileTool cogImgFileTool  = new CogImageFileTool();

            openFileDialog1.Filter = "點陣圖檔案(*.bmp)|*.bmp";                    // 對話框開啟時所預設的檔案格式
            //openFileDialog1.FileName = ""; // 對話框開啟時所預設的檔案名稱
            openFileDialog1.InitialDirectory = "C:\\Users\\shihjia\\Desktop"; // 對話框開啟時所在資料夾路徑
            openFileDialog1.ShowDialog();

            if (openFileDialog1.FileName == "")
            {
                MessageBox.Show("未選取 File not selected");
            }
            else if (File.Exists(openFileDialog1.FileName) == true)
            {
                cogImgFileTool.Operator.Open(openFileDialog1.FileName, CogImageFileModeConstants.Read);
                cogImgFileTool.Run();


                if (cogImgFileTool.RunStatus.Result == CogToolResultConstants.Accept)
                {
                    // Show Image
                    cogRecordDisplay1.Image     = cogImgFileTool.OutputImage;
                    m_FindCircleTool.InputImage = (CogImage8Grey)cogRecordDisplay1.Image;
                    cogRecordDisplay1.Fit();
                }
                cogImgFileTool.Operator.Close();
                cogImgFileTool.Dispose();
            }
        }
示例#3
0
 private bool GetImage(string pathin)
 {
     myToolGroup = (CogToolGroup)(myJobManager.Job(0).VisionTool);
     myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
     myImageFile.Operator.Open(pathin, CogImageFileModeConstants.Read);
     Imagein = new Bitmap(pathin);
     myImageFile.InputImage = new CogImage8Grey(Imagein);
     myImageFile.Run();
     return(true);
 }
示例#4
0
 private bool GetImage2(string pathin)
 {
     try
     {
         myToolGroup2 = (CogToolGroup)(myJobManager2.Job(0).VisionTool);
         myImageFile2 = (CogImageFileTool)(myToolGroup2.Tools["CogImageFileTool1"]);
         myImageFile2.Operator.Open(pathin, CogImageFileModeConstants.Read);
         Imagein2 = new Bitmap(pathin);
         myImageFile2.InputImage = new CogImage8Grey(Imagein2);
         myImageFile2.Run();
     }
     catch{}
 }
示例#5
0
 private void GetImage0(string pathin)
 {
     try
     {
         myToolGroup0 = (CogToolGroup)(myJobManager0.Job(0).VisionTool);
         myImageFile0 = (CogImageFileTool)(myToolGroup0.Tools["CogImageFileTool1"]);
         myImageFile0.Operator.Open(pathin, CogImageFileModeConstants.Read);
         Imagein0 = new Bitmap(pathin);
         myImageFile0.InputImage = new CogImage8Grey(Imagein0);
         myImageFile0.Run();
     }   
     catch{}
 }
示例#6
0
 private bool GetImage3(string pathin)
 {
     try
     {
         myToolGroup3 = (CogToolGroup)(myJobManager3.Job(0).VisionTool);
         myImageFile3 = (CogImageFileTool)(myToolGroup3.Tools["CogImageFileTool1"]);
         myImageFile3.Operator.Open(pathin, CogImageFileModeConstants.Read);
         Imagein3 = new Bitmap(pathin);
         myImageFile3.InputImage = new CogImage8Grey(Imagein3);
         myImageFile3.Run();
         return true;
     }
     catch
     {
         return false;
     }
 }
示例#7
0
 private bool GetImage(int numOfVpps, List <string> pathin)
 {
     if (null == pathin[numOfVpps])
     {
         return(false);
     }
     else
     {
         myToolGroup = (CogToolGroup)(myJobManager[numOfVpps].Job(numOfVpps).VisionTool);
         myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
         myImageFile.Operator.Open(pathin[numOfVpps], CogImageFileModeConstants.Read);
         Imagein = new Bitmap(pathin[numOfVpps]);
         myImageFile.InputImage = new CogImage8Grey(Imagein);
         myImageFile.Run();
         Imagein = null;
     }
     return(true);
 }
示例#8
0
 public void RunOnce()
 {
     // Get the next image
     if (!bUseCamera)
     {
         mIFTool.Run();
         mToolBlockProcess.Inputs["Image"].Value = mIFTool.OutputImage as CogImage8Grey;
     }
     else
     {
         //FIXME: check output image of mToolBockAcq
         mToolBlockAcq.Run();
         Console.WriteLine("Test step process when using camera 1....");
         mToolBlockProcess.Inputs["Image"].Value = mToolBlockAcq.Outputs["Image"].Value;
     }
     // Run the toolblock
     mToolBlockProcess.Run();
 }
        private void LogToDisk_ExceptionEaten()
        {
            try
            {
                using (var fileTool = new CogImageFileTool())
                {
                    var img = _display.CreateContentBitmap(_bitmapStyle);

                    var bmp      = new Bitmap(img);
                    var cogImage = new CogImage24PlanarColor(bmp);
                    fileTool.InputImage = cogImage;

                    fileTool.Operator.Open(_recentImagePath, CogImageFileModeConstants.Write);
                    fileTool.Run();
                }
            }

            catch
            {
            }
        }
示例#10
0
 protected void OnContextMenuItemLoadImageClicked(object sender, EventArgs e)
 {
     using (OpenFileDialog _openFileDialog = new OpenFileDialog())
     {
         _openFileDialog.Filter = "BmpFile (*.bmp)|*.bmp";
         try
         {
             if (_openFileDialog.ShowDialog() == DialogResult.OK)
             {
                 string           _fileName         = _openFileDialog.FileName;
                 CogImageFileTool _cogImageFileTool = new CogImageFileTool();
                 _cogImageFileTool.Operator.Open(_fileName, CogImageFileModeConstants.Read);
                 _cogImageFileTool.Run();
                 this.Image   = _cogImageFileTool.OutputImage;
                 this.AutoFit = true;
             }
         }
         catch
         {
             CLogManager.AddInspectionLog(CLogManager.LOG_TYPE.ERR, "OnContextMenuItemLoadImageClicked Exception!!", CLogManager.LOG_LEVEL.LOW);
             MessageBox.Show("Loading image failed.");
         }
     }
 }
示例#11
0
 private bool GetImage(string pathin)
 {
     myToolGroup = (CogToolGroup)(myJobManager.Job(0).VisionTool);
     myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
     myImageFile.Operator.Open(pathin, CogImageFileModeConstants.Read);
     Imagein = new Bitmap(pathin);
     myImageFile.InputImage = new CogImage8Grey(Imagein);
     myImageFile.Run();
     return true;
 }
示例#12
0
        public static void saveImage(CogRecordDisplay image, int index, string result)
        {
            var imageBaseDir = AppDomain.CurrentDomain.BaseDirectory + "Image";

            if (!Directory.Exists(imageBaseDir))
            {
                Directory.CreateDirectory(imageBaseDir);
            }


            var imageDir_today = imageBaseDir + "\\" + DateTime.Now.ToString("MM-dd");

            if (!Directory.Exists(imageDir_today))
            {
                Directory.CreateDirectory(imageDir_today);
            }

            var imagePath = imageDir_today + "\\" + index + "_" + DateTime.Now.ToString("HHmmss") + ".jpg";

            if (result == resultNG)
            {
                lock (mu_recentNGImagePath)
                {
                    recentNGIMagePath = imagePath;
                }
            }

            if (ShouldImageBeSavedBasedOnResult(result))
            {
                try
                {
                    using (var fileTool = new CogImageFileTool())
                    {
                        Image img;
                        lock (mu_SaveAsScreenShot)
                        {
                            img = image.CreateContentBitmap(saveAsScreenShot
                                ? CogDisplayContentBitmapConstants.Display
                                : CogDisplayContentBitmapConstants.Image);
                        }

                        var bmp      = new Bitmap(img);
                        var cogImage = new CogImage24PlanarColor(bmp);
                        fileTool.InputImage = cogImage;
                        lock (mu_recentNGImagePath)
                        {
                            fileTool.Operator.Open(imagePath, CogImageFileModeConstants.Write);
                        }

                        fileTool.Run();
                    }
                }
                catch
                {
                }
            }


            //删除过期文件夹
            removeOutdatedDirs(imageBaseDir);
        }
        private void cmdImageAcquisitionLiveOrOpenCommand_Click(System.Object sender, System.EventArgs e)
        {
            CogDisplay1.StaticGraphics.Clear();
            CogDisplay1.InteractiveGraphics.Clear();

            cogRecordDisplay1.StaticGraphics.Clear();
            cogRecordDisplay1.InteractiveGraphics.Clear();
            ROIParams = myAcqFifo.OwnedROIParams;
            //if (AppGen.Inst.MDImain.frmVisionMain.FrmUnloadCarrier.flagFullTray)
            //{
            ROIParams.SetROIXYWidthHeight(StartXIndx, StartYIndx, MaxXWidth, MaxYWidth);
            //PatMaxSearchRegion.SetXYWidthHeight(0, 0, 349.08, 296.54);
            //cogPMAlignTool.SearchRegion = PatMaxSearchRegion;
            //}
            //else
            //{
            //   // ROIParams.SetROIXYWidthHeight(Convert.ToInt32(StartXIndx * PixFactor), Convert.ToInt32(CurrLineCoord * PixFactor), Convert.ToInt32((xSearchReg + 10) * PixFactor), Convert.ToInt32((ySearchReg + 10) * PixFactor));
            //    try
            //    {
            //        CurrLineCoord = StartYIndx + (((AppGen.Inst.MainCycle.UnloadCarrierSliceNo - 1) * ySearchReg));      //added 11.06.14 by asaf
            //       //111111 ROIParams.SetROIXYWidthHeight(Convert.ToInt32(StartXIndx * 2.5), Convert.ToInt32(CurrLineCoord), xSearchReg - 1100, ySearchReg + 150);
            //    }
            //    catch (Exception ex)
            //    {
            //        MessageBox.Show(ex.Message, "PatMax Setup Error");
            //    }

            //}
            //"Live Video"  & "Stop Live" button when Frame Grabber option is selected.
            //Using our EnableAll & DisableAll subroutine to force the user stop live
            //video before doing anything else.
            if (optImageAcquisitionOptionFrameGrabber.Checked == true)
            {
                if (cogRecordDisplay1.LiveDisplayRunning)
                {
                    cogRecordDisplay1.StopLiveDisplay();
                    EnableAll(settingLiveVideo);
                    AcqFifoTool.Run();

                    cogRecordDisplay1.Fit(true);
                    cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image;
                }
                else if ((AcqFifoTool.Operator != null))
                {
                    AcqFifoTool.Run();

                    cogRecordDisplay1.Fit(true);
                    cogRecordDisplay1.StartLiveDisplay(AcqFifoTool.Operator, false);
                    cogRecordDisplay1.Fit(true);
                    cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image;
                    DisableAll(settingLiveVideo);
                    cogRecordDisplay1.Fit(true);
                }
            }
            else
            {
                //"Open File" button when image file option is selected
                //DrawingEnabled is used to simply hide the image while the Fit is performed.
                //This prevents the image from being diplayed at the initial zoom factor
                //prior to fit being called.
                try {
                    DialogResult result = ImageAcquisitionCommonDialog.ShowDialog();
                    if (result != System.Windows.Forms.DialogResult.Cancel)
                    {
                        ImageFileTool.Operator.Open(ImageAcquisitionCommonDialog.FileName, CogImageFileModeConstants.Read);
                        cogRecordDisplay1.DrawingEnabled = false;
                        ImageFileTool.Run();
                        cogRecordDisplay1.Fit(true);
                        cogRecordDisplay1.DrawingEnabled = true;
                    }
                } catch (CogException cogex) {
                    MessageBox.Show("Following Specific Cognex Error Occured:" + cogex.Message);
                } catch (Exception ex) {
                    MessageBox.Show("Following Error Occured:" + ex.Message);
                }
                cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image; //!!!!! Neet to solve why pic doesn't get into tool
            }
            cogRecordDisplay1.Fit(true);
        }
示例#14
0
        private void cmdImageAcquisitionLiveOrOpenCommand_Click(System.Object sender, System.EventArgs e)
        {
            txtCurrentIndex.Text = (AppGen.Inst.LoadTray.CurrIndex + 1).ToString();
            //Clear graphics, assuming a new image will be in the display once user
            //completes either Live Video or Open File operation, therefore, graphics
            //will be out of sync.
            CogDisplay1.StaticGraphics.Clear();
            CogDisplay1.InteractiveGraphics.Clear();
            cogRecordDisplay1.StaticGraphics.Clear();
            cogRecordDisplay1.InteractiveGraphics.Clear();

            ROIParams = myAcqFifo.OwnedROIParams;
            if (AppGen.Inst.MDImain.frmVisionMain.FrmLoadtray.flagFullTray)
            {
                //PatMaxSearchRegion.SetXYWidthHeight(0, 0, 349.08, 296.54);
                //cogPMAlignTool.SearchRegion = PatMaxSearchRegion;
                PatMaxSearchRegion.SetCenterWidthHeight(StartXIndx, StartYIndx, MaxXWidth + 555, MaxYWidth + 555);
                cogPMAlignTool.SearchRegion = PatMaxSearchRegion;
            }
            else
            {
                cogTransform2DLinearN2N = CalibNPointTool.Calibration.GetComputedUncalibratedFromCalibratedTransform() as CogTransform2DLinear;
                PatMaxSearchRegion.SetCenterWidthHeight(173 + (AppGen.Inst.LoadTray.
                                                               IndexList[AppGen.Inst.LoadTray.CurrIndex].X_file),
                                                        (593.7 - AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].Y_file),
                                                        (xSearchReg), (ySearchReg));
                cogPMAlignTool.SearchRegion = PatMaxSearchRegion;
                //if ((cogPMAlignTool.SearchRegion != null))
                //{
                //    cogRecordDisplay1.StaticGraphics.Add(cogPMAlignTool.SearchRegion as ICogGraphic, "test");
                //    cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image;
                //}
            }

            //"Live Video"  & "Stop Live" button when Frame Grabber option is selected.
            //Using our EnableAll & DisableAll subroutine to force the user stop live
            //video before doing anything else.
            if (optImageAcquisitionOptionFrameGrabber.Checked == true)
            {
                if (cogRecordDisplay1.LiveDisplayRunning)
                {
                    cogRecordDisplay1.StopLiveDisplay();
                    EnableAll(settingLiveVideo);
                    AcqFifoTool.Run();

                    cogRecordDisplay1.Fit(true);
                    cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image;
                }
                else if ((AcqFifoTool.Operator != null))
                {
                    AcqFifoTool.Run();
                    cogRecordDisplay1.Fit(true);
                    cogRecordDisplay1.StartLiveDisplay(AcqFifoTool.Operator, false);
                    cogRecordDisplay1.Fit(true);
                    cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image;
                    DisableAll(settingLiveVideo);
                    cogRecordDisplay1.Fit(true);
                }
            }
            else
            {
                //"Open File" button when image file option is selected
                //DrawingEnabled is used to simply hide the image while the Fit is performed.
                //This prevents the image from being diplayed at the initial zoom factor
                //prior to fit being called.
                try
                {
                    DialogResult result = ImageAcquisitionCommonDialog.ShowDialog();
                    if (result != System.Windows.Forms.DialogResult.Cancel)
                    {
                        ImageFileTool.Operator.Open(ImageAcquisitionCommonDialog.FileName, CogImageFileModeConstants.Read);
                        cogRecordDisplay1.DrawingEnabled = false;
                        ImageFileTool.Run();
                        cogRecordDisplay1.Fit(true);
                        cogRecordDisplay1.DrawingEnabled = true;
                    }
                }
                catch (CogException cogex)
                {
                    MessageBox.Show("Following Specific Cognex Error Occured:" + cogex.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Following Error Occured:" + ex.Message);
                }
                cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image; //!!!!! Need to solve why pic doesn't get into tool
            }
            cogRecordDisplay1.Fit(true);
        }
示例#15
0
 private bool GetImage(int numOfVpps, List<string> pathin)
 {
     if (null == pathin[numOfVpps])
     {
         return false;
     }
     else
     {
         myToolGroup = (CogToolGroup)(myJobManager[numOfVpps].Job(numOfVpps).VisionTool);
         myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
         myImageFile.Operator.Open(pathin[numOfVpps], CogImageFileModeConstants.Read);
         Imagein = new Bitmap(pathin[numOfVpps]);
         myImageFile.InputImage = new CogImage8Grey(Imagein);
         myImageFile.Run();
         Imagein = null;
     }
     return true;
 }
示例#16
0
        public static List <double> find(int toolNum, int method)
        {
            object toolgroup = CogSerializer.LoadObjectFromFile("c://tool.vpp");
            object job       = CogSerializer.LoadObjectFromFile("QuickBuild1.vpp");

            switch (toolNum)
            {
            case 0:  toolgroup = CogSerializer.LoadObjectFromFile("c://tool0.vpp");
                break;

            case 1:  toolgroup = CogSerializer.LoadObjectFromFile("c://tool1.vpp");
                break;

            case 2: toolgroup = CogSerializer.LoadObjectFromFile("c://tool2.vpp");
                break;

            case 3: toolgroup = CogSerializer.LoadObjectFromFile("c://tool3.vpp");
                break;

            default: break;
            }

            CogToolGroup  ToolGroup1 = toolgroup as CogToolGroup;
            CogJobManager cojob      = job as CogJobManager;
            CogJob        cojob      = cojob.Job["CogJob1"] as CogJob;


            CogImageFileTool myFile = ToolGroup1.Tools["CogImageFileTool1"] as CogImageFileTool;

            myFile.Run();
            CogFindCircleTool myCircleTool = ToolGroup1.Tools["CogFindCircleTool1"] as CogFindCircleTool;
            CogFindLineTool   myLineTool   = ToolGroup1.Tools["CogFindLineTool1"] as CogFindLineTool;

            switch (method)
            {
            case 1: myCircleTool.Run();
                break;

            case 2: myLineTool.Run();
                break;

            case 3: myCircleTool.Run();
                myLineTool.Run();
                break;

            default: break;
            }
            double Lx0    = 0;
            double Lx1    = 0;
            double Ly0    = 0;
            double Ly1    = 0;
            double Langle = 0;
            double Cx     = 0;
            double Cy     = 0;
            double Cr     = 0;


            if (method == 1 | method == 3)
            {
                Cx = myCircleTool.Results.GetCircle().CenterX;
                Cy = myCircleTool.Results.GetCircle().CenterY;
                Cr = myCircleTool.Results.GetCircle().Radius;
            }
            if (method == 2 | method == 3)
            {
                Lx0    = myLineTool.Results.GetLineSegment().StartX;
                Ly0    = myLineTool.Results.GetLineSegment().StartY;
                Lx1    = myLineTool.Results.GetLineSegment().EndX;
                Ly1    = myLineTool.Results.GetLineSegment().EndY;
                Langle = myLineTool.Results.GetLine().Rotation;
            }
            double[] result = { Cx, Cy, Cr, Lx0, Ly0, Lx1, Ly1, Langle };
            return(new List <double>(result));
        }
示例#17
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);
     }
 }