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(); } }
//***************************************************************************************** // 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); }
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]; }
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(); }
/// <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); } }
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); } }
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(); }