c#中添加visionpro控件(联合编程)
vs添加vp控件
创建窗体应用
右键选择项
点击确定
加载CogAcqfifoTool工具拍照
设置参数保存.vpp
保存为QuickBuild或者job, ToolBlock
加载保存的acq工具
实例化相机工具类
//引入命名空间 using Cognex.VisionPro; //实例化一个相机工具类 CogAcqFifoTool cogAcqFifoTool = null; //窗口加载 private void Form1_Load(object sender, EventArgs e) { //加载文件夹里面的 相机工具 赋值给 winform 窗口里面的 相机工具 //地址 保存好的 相机工具地址 string path = @"E:\机器视觉14班\VisionPro\课件\15_ConnectCamera\tb.vpp"; cogAcqFifoTool = CogSerializer.LoadObjectFromFile(path) as CogAcqFifoTool; //把加载的工具赋值给winform窗体中的控件 cogAcqFifoEditV21.Subject = cogAcqFifoTool; } |
设置x64兼容平台
右键属性à
注意:如果保存为QuickBuild, job加载完成之后需要点击复位
点击运行拍照
拍照、保存图像、实时显示、关闭相机
拍照
添加button与CogDisplay
Button添加点击事件
private void button1_Click(object sender, EventArgs e){//判断相机是否连接正常//cogAcqFifoTool.Operator == null 连接失败if (cogAcqFifoTool.Operator!=null){//手动调用相机工具的Run方法,运行相机工具cogAcqFifoTool.Run();//获取相机采集到的图像 显示到cogDisplay1cogDisplay1.Image=cogAcqFifoTool.OutputImage;//设置百分比显示cogDisplay1.Fit();}}
实时显示
private void button2_Click(object sender, EventArgs e){if (button2.Text.Equals("实时显示")){button2.Text = "关闭实时";cogDisplay1.StartLiveDisplay(cogAcqFifoTool.Operator,false);}else{button2.Text = "实时显示";//StopLiveDisplay() 关闭实时显示的方法cogDisplay1.StopLiveDisplay();}}
保存图像
方式一
public void SaveImgage1(ICogImage image){//写到本地磁盘//保存的路径string path = Directory.GetCurrentDirectory()+@"\Image1";//判断 是否有当前文件夹if (!Directory.Exists(path)){//说明没有当前文件//创建文件夹Directory.CreateDirectory(path);}//定义图片名称//随机数//当前时间string imageName = $"{DateTime.Now.ToString("yyyyMMddHHmmsss")}.bmp";//1.通过CogImageFileTool工具保存图像CogImageFileTool fileTool=new CogImageFileTool();fileTool.InputImage = image;//保存 //参数1:保存的路径//参数2:保存原图fileTool.Operator.Open($"{path}\\{imageName}",CogImageFileModeConstants.Write);//运行工具fileTool.Run();}
方式二
public void SaveImgage2(CogDisplay display){//写到本地磁盘//保存的路径string path = Directory.GetCurrentDirectory() + @"\Image2";//判断 是否有当前文件夹if (!Directory.Exists(path)){//说明没有当前文件//创建文件夹Directory.CreateDirectory(path);}//定义图片名称string imageName = $"{DateTime.Now.ToString("yyyyMMddHHmmsss")}.jpg";// 通过Bitmap保存图像Bitmap bmp= (Bitmap)display.CreateContentBitmap(CogDisplayContentBitmapConstants.Image);//保存图像//参数1:路径//参数2:图像的格式bmp.Save($"{path}\\{imageName}", System.Drawing.Imaging.ImageFormat.Jpeg);}
窗体关闭 释放相机
private void Form1_FormClosing(object sender, FormClosingEventArgs e){//释放相机 if (acq.Operator != null){//找到硬件 并且释放相机 acq.Operator.FrameGrabber.Disconnect(false);}}