视觉软件 VisionPro 与 C# 对接简单说明(包括常用控件)

6 篇文章 9 订阅
4 篇文章 31 订阅

        C#和VisionPro对接:VisionPro的部分控件是可以直接在C# WinForm里调用的;算法文件在VisionPro平台里编辑好后保存下来也可以通过C#加载调用;下面我们主要说一下C#调用Vpp文件

        首先我们要先引用VisionPro平台的dll文件,在项目文件里添加引用,在引用管理器里程序集扩展里找到需要的dll:

        一般情况下我们都是在VisionPro平台里新建一个ToolBlock工具再添加输入和输出再在ToolBlock里添加一系列工具运算出需要的结果到输出参数,再把ToolBlock整个保存下来,然后用C# 加载给输入参数赋值得到输出参数:

先在CS文件里添加引用:

using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;

加载Vpp文件代码:

//加载Vpp文件
var path=@"";
var toolBlock=CogSerializer.LoadObjectFromFile(path);

给输入参数赋值代码:

 toolBlock.Inputs["InputImage"].Value = image;

工具运行代码:

 toolBlock.Run();

运行成功代码:

 if (toolBlock.RunStatus.Result == CogToolResultConstants.Accept)
{
//运行OK
}

获取得到输出参数代码:

var angle = (double)toolBlock.Outputs["Angle"].Value;

C# 和相机拍照获取图片对接有两种写法:

第一种比较简单就和上面调其它ToolBlock Vpp文件一样运行拍照工具CogAcqFifoTool输出图片即可

另一种代码如下:

//TB_Acq是加载在ToolBlock里放一个CogAcqFifoTool工具的ToolBlock
var acqFifoTool = (CogAcqFifoTool)TB_Acq.Tools["CogAcqFifoTool1"];
var acqFifo = AcqFifoTool.Operator;
//拍照完成触发事件
acqFifoTool.Operator.Complete += new CogCompleteEventHandler(Camera1Acq_compeletevent);
 private void Camera1Acq_compeletevent(object sender, CogCompleteEventArgs e)
        {
            if (InvokeRequired)
            {
                Invoke(new CogCompleteEventHandler(Camera1Acq_compeletevent), new object[] { sender, e });
            }
            else
            {
                var numPending = 0;
                var numReady = 0;
                var busy = false;
                AcqFifoTool[0].Operator.GetFifoState(out numPending, out numReady, out busy);
                if (numReady > 0)
                {
                    var info = new CogAcqInfo();
                    var _Image = (CogImage8Grey)AcqFifo[0].CompleteAcquireEx(info);
                    //toolBlockRun是继续执行的方法
                    ThreadPool.QueueUserWorkItem(new WaitCallback(toolBlockRun));
                }
            }

        }

下面再介绍下VP在C#里常用的三个控件:

1.图像显示控件(CogRecordDisplay):

CogRecordDisplay1.InteractiveGraphics.Clear();
CogRecordDisplay1.Record = toolBlock.CreateLastRunRecord().SubRecords[0];
CogRecordDisplay1.Fit();

2.Vpp文件编辑控件(CogToolBlockEditV2):

var CogToolBlockEditV21 = new CogToolBlockEditV2();
CogToolBlockEditV21.Dock = DockStyle.Fill;
this.Controls.Add(CogToolBlockEditV21);
this.CogToolBlockEditV21.Subject =(CogToolBlock)CogSerializer.LoadObjectFromFile(ToolBlockPath);

3.相机工具编辑控件(CogAcqFifoEditV2):

var CogAcqFifoEditV2=new CogAcqFifoEditV21();
var cogToolBlock = (CogToolBlock)CogSerializer.LoadObjectFromFile(acqFifoFilePath);
this.CogAcqFifoEditV21.Subject = (CogAcqFifoTool)cogToolBlock1.Tools["CogAcqFifoTool1"];

 

  • 34
    点赞
  • 300
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
VisionProC#可以进行对接,通过C#可以调用VisionPro的部分控件和加载调用Vpp文件。具体的对接过程如下: 首先,需要在C#项目中引入VisionPro的命名空间。可以使用以下代码引入VisionPro的命名空间: ``` using Cognex.VisionPro; using Cognex.VisionPro.ToolBlock; ``` 这样就可以在C#项目中使用VisionPro的相关功能。 接下来,可以通过C#调用VisionPro的Vpp文件来实现图像处理和显示。可以使用以下步骤: 1. 在VisionPro平台上编辑和保存Vpp文件,该文件包含了图像处理算法和设置。 2. 在C#项目中加载Vpp文件,并创建一个ToolBlock对象,用于执行图像处理。 3. 使用ToolBlock对象处理输入的图像数据,并获取处理结果。 4. 将处理结果显示在C#的WinForm窗体上。 通过以上步骤,就可以在C#中使用VisionPro的功能,并在WinForm中显示处理结果了。 引用: <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [视觉软件 VisionProC# 对接简单说明(包括常用控件)](https://blog.csdn.net/zhangxiangzero/article/details/103343075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [康耐视VisionPro联合C#教程一](https://blog.csdn.net/ashjc/article/details/129380235)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的黑鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值