让代码更简单

当前位置:代码狗 > 开发教程 > 工业视觉教程 > 正文

C#与visionPro工业视觉教程——C#显示相机实时画面

重要:本文最后更新于2019-12-11 14:53:45,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

相机不仅能拍照,还能录视频,相信大家用过手机的都应该知道,前面我们学习了拍照已经各种视觉工具的使用,今天我们来实现相机实时画面显示在C#程序中,学习这篇C#与visionPro教程相机实时画面显示文章,或许有助于理解相机如何与程序连接。

有人可能觉得这个功能有点多余,但在实际应用中,如果在程序中加入显示相机实时画面的功能,会给现场调机人员提供很大的帮助与方便。

效果图

代码狗工业视觉C#与visionPro教程相机实时画面显示

代码狗工业视觉C#与visionPro教程相机实时画面显示

实现代码如下:

要查看更多文章内容,请您先登录/注册

使用康耐视vision Pro 64位的类库需要注意,可能你的程序会莫名奇妙报错,请将构建环境换成X64,默认使用的是X32。

欢迎关注代码狗博客,更多工业视觉教程等你来学。

感谢网友提供的报错问题,已经修正教程!

感觉很棒!可以赞赏支持我哟~

赞(29) 打赏
感谢 1人打赏10元

评论 51

  1. #19

    源码在哪里

    1656424093@qq.com2周前 (05-14)回复
  2. #18

    想看下SDK采集的图像怎么转换成visionPro里面的图像类型,然后怎么拿来使用

    zy8个月前 (09-20)回复
    • 看你图像是什么类型的,如果visionpro不能直接使用,可以通过visionpro的图像转换工具转换

      代码狗8个月前 (09-22)回复
    • 注册了 CogAcqFifoTool 对象 mAcq.operator.complete 事件(相机硬件触发),在程序关闭的时候就要报错:Runtime Error! R6025-pure virtual function call. 有什么好办法可以解决吗?

      amyhu1个月前 (04-24)回复
      • 关闭前将TriggerEnabled改回false试试

        代码狗1个月前 (04-24)
  3. #17

    多谢狗哥最后那句话,开调试32位,老报错,看到最后才发现要64位~~

    ziye-star9个月前 (09-01)回复
  4. #16

    狗哥,能详细说明下ICogRecord是什么?,什么情况下可以使用它们

    Lmyy1年前 (2019-04-25)回复
    • 忙完了就说。

      代码狗1年前 (2019-04-25)回复
  5. #15

    我是win10,64位,专业版的系统

    绿水青山1年前 (2019-03-14)回复
  6. #14

    版主我是在这一行报错:
    if (mframe.Count < 1)
    报错内容:对象的当前状态使该操作无效。
    这个该怎么解决啊?

    绿水青山1年前 (2019-03-14)回复
    • vs中调整项目架构为X64

      代码狗1年前 (2019-03-14)回复
      • 问题解决,多谢!!!

        绿水青山1年前 (2019-03-15)
  7. #13

    版主你好,我用了个彩色相机,是AVT的,在按钮2执行时会报错,报错的代码行是mAcqFifo2=gbm2.CreateAcqFifo(gbm2.AvailableVideoFormats[0],CogAcqFifoPixelFormatConstants.Format32RGB,0,true);相机的格式是Bayer Color格式的

    xiaochen1年前 (2019-01-17)回复
    • 报错内容呢?

      daimadog1年前 (2019-01-17)回复
      • OK了,是我相机的驱动没弄好

        xiaochen1年前 (2019-01-17)
  8. #12

    发现只要执行gbm2.AvailableVideoFormats[0] 或者 gbm2.CreateAcqFifo ( gbm2.AvailableVideoFormats[0],
    CogAcqFifoPixelFormatConstants.Format8Grey, 0, true )

    在程序关闭的时候就要报错:Runtime Error! R6025-pure virtual function call

    杨小侠2年前 (2018-10-26)回复
    • 在窗口关闭事件中执行关闭实时画面方法

      daimadog2年前 (2018-10-29)回复
      • 窗体关闭,我调用了StopLiveDisplay();还是会报错

        情1236个月前 (12-11)
      • 报什么错?

        代码狗6个月前 (12-11)
      • 窗体关闭,我调用了StopLiveDisplay();还是会报错。还是报,Runtime Error! R6025-pure virtual function call。

        情1236个月前 (12-11)
      • 感谢提供报错信息,教程已修正!

        代码狗6个月前 (12-11)
  9. #11

    cogRecordDisplay1.StartLiveDisplay ( mAcqFifo2, false );//控件绑定相机并显示画面
    这句代码中cogRecordDisplay1 上文未声明,程序出错

    2年前 (2018-10-10)回复
    • cogRecordDisplay1是UI控件,从工具箱中拖一个到你的窗口上。

      daimadog2年前 (2018-10-10)回复
  10. #10

    请问这是连接的康耐视的相机嘛?我用的Basler相机,引用了PylonC.NET。但是运行显示: 无法加载 DLL“PylonC_MD_VC120_v5_0.dll”: 找不到指定的模块。 是因为缺少dll文件吗,这个dll文件从哪能下载呢?

    奇迹哥2年前 (2018-09-21)回复
    • 康耐视的相机和巴勒斯的相机都可以的,visionPro都支持,SDK没试过。

      daimadog2年前 (2018-09-22)回复
    • 请问你遇到的问题,后来有解决吗?如何解决?谢谢!

      Roger1年前 (2018-12-28)回复
  11. #9

    请问相机可以是笔记本电脑自带的摄像头嘛,相机有什么要求吗?

    奇迹哥2年前 (2018-09-17)回复
    • visionPro不能用笔记本的摄像头,相机一般需要jr45接口(网口)

      daimadog2年前 (2018-09-17)回复
  12. #8

    学习中…

    奇迹哥2年前 (2018-09-17)回复
  13. #7

    您好我在试着抓图的时候总是提示这个错误:在 Cognex.VisionPro.Exceptions.CogAcqAbnormalException 中第一次偶然出现的“Cognex.VisionPro.FGGigE.dll”类型的异常
    线程 ” (0x4bd8) 已退出,返回值为 0 (0x0)。
    “TriggerMode.vshost.exe”(托管(v4.0.30319)): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_64\Cognex.VisionPro.CorePlus\v4.0_53.2.0.0__ef0f902af9dee505\Cognex.VisionPro.CorePlus.dll”
    在 Cognex.VisionPro.Exceptions.CogAcqAbnormalException 中第一次偶然出现的“Cognex.VisionPro.FGGigE.dll”类型的异常

    雨点2年前 (2018-06-20)回复
    • 安装的visionpro是否与系统位数一致,编译是否有提示dll架构与处理器架构不一致,不一致选择x64

      daimadog2年前 (2018-06-20)回复
  14. #6

    CogFrameGrabberGigEs 这是哪一个引用集?

    xujiajia1232年前 (2018-06-01)回复
    • Cognex.VisionPro;

      daimadog2年前 (2018-06-01)回复
      • 这个引用集加进去了 还是报错啊

        xujiajia1232年前 (2018-06-01)
      • 引用Cognex.VisionPro.FGGigE这个支持库,然后using Cognex.VisionPro.FGGigE;

        daimadog2年前 (2018-06-01)
      • 我有两个程序代码一样,一个可找到相机,另外一个死活找不到,是哪里设置有问题吗

        112年前 (2018-11-01)
      • 程序架构选X64

        daimadog2年前 (2018-11-01)
  15. #5

    多多更新visionpro

    robin11211036122年前 (2018-03-29)回复
    • 最近比较忙,有空我会更新的

      daimadog2年前 (2018-03-29)回复
  16. #4

    visionpro都有哪些类,分别有什么作用, 请问哪里可以查看到? 现在是看到别人有用的才知道有这个类

    低调不代表没调2年前 (2018-03-24)回复
    • visionpro有接口说明文档哟,在开始菜单那里。

      daimadog2年前 (2018-03-24)回复
  17. #3

    if (mframe.Count < 1) 这里报错是因为64位的原因,已经解决。
    我这里没有连接任何相机的情况下,ICogFrameGrabber gbm2 = mfr2[0]这句报错。
    未处理ArgumentOutOfRangeException 指定的参数已超出有效值的范围。
    报错是因为相机列表里没有,取不到的原因吗?

    低调不代表没调2年前 (2018-03-24)回复
    • 按照你所说的错误,属于超出数组界限,使用mfr.length()查看数组长度,看看有没有内容。

      daimadog2年前 (2018-03-24)回复
    • 没有连接相机是没有相机列表的,所有你这里应该是取不到相机,相机列表数组里是空的,你又使用了相机数组里的第一个元素,所以才报错的。

      daimadog2年前 (2018-03-24)回复
    • 请问 if (mframe.Count < 1) 这里报错,怎么解决的

      abc2年前 (2018-05-17)回复
      • 报的什么错,我贴的代码都是成功运行的程序复制下来的。

        daimadog2年前 (2018-05-17)
      • “System.InvalidOperationException”类型的未经处理的异常在 Cognex.VisionPro.FGGigE.dll 中发生

        其他信息: 对象的当前状态使该操作无效。

        abc2年前 (2018-05-17)
      • 这个是因为该链接库DLL必须使用64位编译,用32位编译就会报错。在vs里右键项目——属性——生成——目标平台改为X64就好了。

        daimadog2年前 (2018-05-17)
  18. #2

    if (mframe.Count < 1) 这里报错,未处理InvalidOperationException 对象的当前状态使该操作无效。请问会是什么原因引起的,我这里没有连接任何相机。

    低调不代表没调2年前 (2018-03-24)回复
  19. #1

    我正在学习c#+visionpro,期待新教程不断更新!

    低调不代表没调2年前 (2018-03-23)回复
    • 有时间我就会更新的,有不懂的地方可以留言哟,我看到会回的。

      daimadog2年前 (2018-03-23)回复
×

请作者吃根烤肠!

支付宝