Esempio n. 1
0
        private void btn_openimage_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                CogImageFile imagefile = new CogImageFile();
                imagefile.Open(dlg.FileName, CogImageFileModeConstants.Read);
                m_Image = (CogImage8Grey)imagefile[0];
                cogRecordDisplay1.Image = imagefile[0];
                cogRecordDisplay1.Fit();
            }
        }
Esempio n. 2
0
        //*****************************************************************************************
        // Image I/O
        //*****************************************************************************************
        public ICogImage ImageLoad_From_CogImageFile(string strPath)
        {
            // Extention Header Error Included.
            // it shows some errors from the different types of bitmaps.

            CogImageFile cogImageFile = new CogImageFile();

            cogImageFile.Open(strPath, CogImageFileModeConstants.Read);
            ICogImage cogImage = cogImageFile[0];

            cogImageFile.Close();
            return(cogImage);
        }
Esempio n. 3
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            m_tb = new CogToolBlock();
            string nameOfVpp = Application.StartupPath + "\\..\\..\\..\\demo.vpp";

            m_tb = (CogToolBlock)CogSerializer.LoadObjectFromFile(nameOfVpp);

            CogImageFile imagefile = new CogImageFile();

            imagefile.Open(Application.StartupPath + "/../../../in/bracket_std.idb", CogImageFileModeConstants.Read);

            //imagefile.IsSynchronized ;//();
            //m_Image =
            CogToolCollection tbTc = m_tb.Tools;

            //tbTc.
            //((CogImageFileTool)tbTc["CogImageFileTool1"]).Name = "";
            ((CogImageFileTool)tbTc["CogImageFileTool1"]).InputImage = (CogImage8Grey)imagefile[0];
        }
Esempio n. 4
0
        private void button1_Click(object sender, EventArgs e)
        {
            // open iamge and show
            CogImageFile cif             = new Cognex.VisionPro.ImageFile.CogImageFile();
            string       nameOfImageFile = "C:\\20181103145139_H-90CG-MPA08-0200-A5-2354_CF-7#_L/145236313_ReCheck_Left_001_20181103145139_H-90CG-MPA08-0200-A5-2354_CF-7#_L_Accept.jpg";

            cif.Open(nameOfImageFile, CogImageFileModeConstants.Read);

            if (false)
            {
                OpenFileDialog dlg = new OpenFileDialog();
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    CogImageFile imagefile = new CogImageFile();
                    imagefile.Open(dlg.FileName, CogImageFileModeConstants.Read);
                }
            }
            cogRecordDisplay1.Image = cif[0];// imagefile[0];
            cogRecordDisplay1.Fit();
        }
Esempio n. 5
0
        /// <summary>
        /// LDH, 2017.06.04
        /// 현재 Display된 Image 저장하기
        /// </summary>
        public void SaveDisplayImage(string _DirectoryPath)
        {
            DateTime dateTime        = DateTime.Now;
            string   ImageSaveFolder = _DirectoryPath;

            if (false == Directory.Exists(ImageSaveFolder))
            {
                Directory.CreateDirectory(ImageSaveFolder);
            }
            ImageSaveFolder = String.Format("{0}\\{1:D4}\\{2:D2}\\{3:D2}", ImageSaveFolder, dateTime.Year, dateTime.Month, dateTime.Day);
            if (false == Directory.Exists(ImageSaveFolder))
            {
                Directory.CreateDirectory(ImageSaveFolder);
            }

            string ImageSaveFile;

            ImageSaveFile = String.Format("{0}\\{1:D2}{2:D2}{3:D2}{4:D3}.bmp", ImageSaveFolder, dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond);

            try
            {
                ICogImage    _CogSaveImage = kCogDisplay.Image;
                CogImageFile _CogImageFile = new CogImageFile();

                if (_CogSaveImage == null)
                {
                    //MessageBox.Show(new Form{TopMost = true}, "영상이 없습니다.");
                }
                else
                {
                    _CogImageFile.Open(ImageSaveFile, CogImageFileModeConstants.Write);
                    _CogImageFile.Append(_CogSaveImage);
                    _CogImageFile.Close();
                }
            }
            catch
            {
                CLogManager.AddInspectionLog(CLogManager.LOG_TYPE.ERR, "SetDisplayImage(string) Exception!!", CLogManager.LOG_LEVEL.LOW);
            }
        }
Esempio n. 6
0
        private void ThreadProcess()
        {
            while (true)
            {
                if (runStart && processEndStatus)
                {
                    processEndStatus = false;
                    try
                    {
                        visionResult           = new VisionResult();
                        visionResult.StartTime = DateTime.Now;

                        //程序运行
                        acqFifoTool.Run();

                        if (acqFifoTool.OutputImage != null)
                        {
                            visionResult.InputImage = acqFifoTool.OutputImage;

                            processToolBlock.Inputs[0].Value = visionResult.InputImage;
                            processToolBlock.Run();

                            if (processToolBlock.RunStatus.Result == CogToolResultConstants.Accept)
                            {
                                CogCalibCheckerboardTool checkerboardTool = (CogCalibCheckerboardTool)processToolBlock.Tools[0];
                                visionResult.OutputImage   = checkerboardTool.OutputImage;
                                visionResult.cogRecord     = processToolBlock.CreateLastRunRecord();
                                visionResult.width1        = (double)processToolBlock.Outputs[0].Value;
                                visionResult.width2        = (double)processToolBlock.Outputs[1].Value;
                                visionResult.CoordX        = (double)processToolBlock.Outputs[4].Value;
                                visionResult.RunStatus     = true;
                                visionResult.RunStatusText = "OK";


                                //判断是否重复
                                if (Math.Abs(visionResult.CoordX - lastCoordX) < 0.05)
                                {
                                    recurCount++;
                                    if (recurCount > 9)
                                    {
                                        toolStrip1.Invoke(new Action(delegate
                                        {
                                            tsbStart_Click(null, null);
                                            MessageBox.Show(string.Format("检测到产品未移动,次数{0},自动停止运行,请适当挪动产品", recurCount));
                                        }));
                                    }
                                }
                                else
                                {
                                    recurCount = 0;
                                }
                                lastCoordX = visionResult.CoordX;


                                //判断处理
                                visionResult.ExamineStatus = true;
                            }
                            else
                            {
                                visionResult.OutputImage   = visionResult.InputImage;
                                visionResult.cogRecord     = null;
                                visionResult.RunStatusText = "未识别";
                                visionResult.RunStatus     = false;
                                visionResult.width1        = 999;
                                visionResult.width2        = 999;
                                visionResult.CoordX        = 0;
                            }



                            //保存原图图片
                            if (isSaveImage && visionResult.RunStatus)
                            {
                                visionResult.ImagePath = string.Format("{0}\\{2}\\{1}", imageSavePath, visionResult.ExamineStatus ? "OK" : "NG", visionResult.StartTime.ToString("yyMMdd"));
                                if (!Directory.Exists(visionResult.ImagePath))
                                {
                                    Directory.CreateDirectory(visionResult.ImagePath);
                                }
                                CogImageFile cogImageFile = new CogImageFile();
                                cogImageFile.Open(visionResult.ImagePath + "\\" + visionResult.StartTime.ToString("HHmmssfff") + ".bmp", CogImageFileModeConstants.Write);
                                cogImageFile.Append(visionResult.InputImage);
                                cogImageFile.Close();
                            }

                            crdResultImage.Invoke(new Action(delegate
                            {
                                crdResultImage.InteractiveGraphics.Clear();
                                crdResultImage.StaticGraphics.Clear();
                                crdResultImage.Image   = null;
                                crdResultImage.Image   = visionResult.OutputImage;
                                crdResultImage.Record  = visionResult.cogRecord;
                                lblRunStatus.Text      = visionResult.RunStatusText;
                                lblRunStatus.ForeColor = visionResult.RunStatus ? Color.Green : Color.Red;
                                lblWidth1.Text         = visionResult.width1.ToString("0.000");
                                lblWidth2.Text         = visionResult.width2.ToString("0.000");

                                //保存画线图
                                if (isSaveImage && visionResult.RunStatus && !visionResult.ExamineStatus)
                                {
                                    Bitmap crdImage = (Bitmap)crdResultImage.CreateContentBitmap(Cognex.VisionPro.Display.CogDisplayContentBitmapConstants.Image);
                                    crdImage.Save(visionResult.ImagePath + "\\crd_" + visionResult.StartTime.ToString("HHmmssfff") + ".jpeg", ImageFormat.Jpeg);
                                }
                            }));
                        }
                        else
                        {
                            CognexAreaCamera_CameraStatusChange(1, false);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("图片处理异常:" + ex);
                        tsbStart_Click(null, null);
                    }
                    processEndStatus = true;
                }
                if (!cameraStatus)
                {
                    acqFifoTool.Run();
                    if (acqFifoTool.RunStatus.Result == CogToolResultConstants.Accept)
                    {
                        CognexAreaCamera_CameraStatusChange(1, true);
                    }
                }

                Thread.Sleep(1);
            }
        }
Esempio n. 7
0
        private void 研究图像缝合ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            CogImageFile imagefile_0 = new CogImageFile();

            imagefile_0.Open(Application.StartupPath + "/../../../street/street_0.bmp", CogImageFileModeConstants.Read);
            CogImage24PlanarColor image_24_0 = new CogImage24PlanarColor();

            image_24_0 = (CogImage24PlanarColor)imagefile_0[0];
            CogImage8Grey imageGray8_0 = CogImageConvert.GetIntensityImage(image_24_0, 0, 0, image_24_0.Width, image_24_0.Height);


            CogImageFile imagefile_1 = new CogImageFile();

            imagefile_1.Open(Application.StartupPath + "/../../../street/street_1.bmp", CogImageFileModeConstants.Read);
            CogImage24PlanarColor image_24_1 = new CogImage24PlanarColor();

            image_24_1 = (CogImage24PlanarColor)imagefile_1[0];
            CogImage8Grey imageGray8_1 = CogImageConvert.GetIntensityImage(image_24_1, 0, 0, image_24_1.Width, image_24_1.Height);


            CogImageFile imagefile_2 = new CogImageFile();

            imagefile_2.Open(Application.StartupPath + "/../../../street/street_2.bmp", CogImageFileModeConstants.Read);
            CogImage24PlanarColor image_24_2 = new CogImage24PlanarColor();

            image_24_2 = (CogImage24PlanarColor)imagefile_2[0];
            CogImage8Grey imageGray8_2 = CogImageConvert.GetIntensityImage(image_24_2, 0, 0, image_24_2.Width, image_24_2.Height);


            // 灰度图像
            //CogImage8Grey image8 = (CogImage8Grey)m_tb.GetScriptTerminalData("imageInput");
            CogImage8Grey image8 = (CogImage8Grey)m_tb.GetScriptTerminalData("OutputImage");

            image8 = imageGray8_0.Copy();
            CogToolCollection tbTc = m_tb.Tools;

            //tbTc.
            if (false)
            {
                image8 = (CogImage8Grey)((CogImageFileTool)tbTc["CogImageFileTool1"]).OutputImage;
            }



            CogImage8Grey image_002 = new CogImage8Grey();

            //image_002 = image8;
            image_002 = image8.Copy();
            CogImage8Grey image_003 = image8.Copy();



            // 将各个图像进行缝合组成一个完整的大图
            // 灰度图像
            //CogIPOneImageTool imageCtrl_02 = (CogIPOneImageTool)mToolBlock.Tools["CogIPOneImageTool2"];
            CogRectangle rt = new CogRectangle();

            rt.SetCenterWidthHeight(0, 0, image8.Width * 3, image8.Height * 3);
            CogImage8Grey m_gray = rt.CreateRLE(128, 0).CreateImage8Grey();
            //imageCtrl_02.InputImage = m_gray;



            //    CogImage8Grey inputImage = ( CogImage8Grey ) image8;
            //    tb.SetScriptTerminalData("Input", inputImage);
            CogImageStitch       stt = new CogImageStitch();
            CogTransform2DLinear rootFromBlending = new CogTransform2DLinear();

            //缩放,旋转,平移
            rootFromBlending.SetScalingsRotationsTranslation(1, 1, 0, 0, 0, 0);
            //    rootFromBlending.SetScalingsRotationTranslation();
            stt.AllocateBlendingBuffer(image8.Width * 3, image8.Height * 3, rootFromBlending);
            //stt.BlendImageIntoBuffer(image8, m_gray);
            stt.BlendImageIntoBuffer(imageGray8_0, imageGray8_0, m_gray, 0, 0);
            stt.BlendImageIntoBuffer(imageGray8_1, imageGray8_1, m_gray, image8.Width, image8.Height);
            stt.BlendImageIntoBuffer(imageGray8_2, imageGray8_2, m_gray, image8.Width * 2, image8.Height * 2);



            stt.FillDestinationImageFromBuffer(m_gray);
            //    BlendImageIntoBuffer(  CogImage8Grey, CogImage8Grey, CogImage8Grey, Int32, Int32 )


            //
            CogCopyRegionTool ccft = new CogCopyRegionTool();


            //switch (  true )
            //{
            //case :
            //    break;
            //}


            cogRecordDisplay1.Image = m_gray;
            cogRecordDisplay1.Fit();
        }