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

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

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

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

效果图

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

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

实现代码如下:

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

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

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

 

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

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

评论 42

  1. #17

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

    ziye-star2周前 (09-01)回复
  2. #16

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

    Lmyy5个月前 (04-25)回复
    • 忙完了就说。

      代码狗5个月前 (04-25)回复
  3. #15

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

    绿水青山6个月前 (03-14)回复
  4. #14

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

    绿水青山6个月前 (03-14)回复
    • vs中调整项目架构为X64

      代码狗6个月前 (03-14)回复
      • 问题解决,多谢!!!

        绿水青山6个月前 (03-15)
  5. #13

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

    xiaochen8个月前 (01-17)回复
    • 报错内容呢?

      daimadog8个月前 (01-17)回复
      • OK了,是我相机的驱动没弄好

        xiaochen8个月前 (01-17)
  6. #12

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

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

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

      daimadog11个月前 (10-29)回复
  7. #11

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

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

      daimadog11个月前 (10-10)回复
  8. #10

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

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

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

      Roger9个月前 (12-28)回复
  9. #9

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

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

      daimadog1年前 (2018-09-17)回复
  10. #8

    学习中…

    奇迹哥1年前 (2018-09-17)回复
  11. #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”类型的异常

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

      daimadog1年前 (2018-06-20)回复
  12. #6

    CogFrameGrabberGigEs 这是哪一个引用集?

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

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

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

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

        1111个月前 (11-01)
      • 程序架构选X64

        daimadog11个月前 (11-01)
  13. #5

    多多更新visionpro

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

      daimadog1年前 (2018-03-29)回复
  14. #4

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

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

      daimadog1年前 (2018-03-24)回复
  15. #3

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

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

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

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

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

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

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

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

        daimadog1年前 (2018-05-17)
  16. #2

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

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

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

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

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

请作者吃根烤肠!

支付宝