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添加点击事件
cs
private void button1_Click(object sender, EventArgs e)
{
//判断相机是否连接正常
//cogAcqFifoTool.Operator == null 连接失败
if (cogAcqFifoTool.Operator!=null)
{
//手动调用相机工具的Run方法,运行相机工具
cogAcqFifoTool.Run();
//获取相机采集到的图像 显示到cogDisplay1
cogDisplay1.Image=cogAcqFifoTool.OutputImage;
//设置百分比显示
cogDisplay1.Fit();
}
}
实时显示
cs
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();
}
}
保存图像
方式一
cs
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();
}
方式二
cs
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);
}
窗体关闭 释放相机
cs
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//释放相机
if (acq.Operator != null)
{
//找到硬件 并且释放相机
acq.Operator.FrameGrabber.Disconnect(false);
}
}