C#与VisionPro联合编程 使用相机获取图像
2023-03-31 11:05:55 时间
使用相机获取图像的主要内容是:
- C#下使用VisionPro的工具驱动相机获取图像;
- 制作显示界面,显示相机获取的图像;
- 相机响应用户指令。
用到的工具:
- Gige相机;
- VisionPro9.0;
- VisualStudio2019 。
1 一个难懂的地方
在VisionPro的帮助文档中有个词“帧获取器”,大家默默的把它翻译成相机就行了。使用GigE相机的时候就是指相机,其他的也许有不同,不知道。
VisionPro中,相机的初始化设置界面包含了相机的所有属性。这些在C#环境中都可以通过编码的方式实现。
2 取像工具和取像队列
上图对应的工具是CogAcqFifoTool,这个类包含上图中的所有内容。只有一个相机的时候,可以直接使用完成与相机的连接。
CogAcqFifoTool acqTool = new CogAcqFifoTool();
拍照获取图像使用的是取像工具的属性Operator,它是ICogAcqFifo类型。
ICogAcqFifo AcqFifo = AcqTool.Operator;
使用取像队列的Acquire方法即可获得一张图像,取像队列还提供了异步方法,通常的应用中这个同步方法就足够了。
ICogImage image= AcqFifo.Acquire(out numAcqs);
3 构建项目
工具都准备好了,但是代码不能慌着写。使用相机获取一张图像这个任务可以分成两个子任务:
- 获取图像;
- 展示图像。
展示图像使用CogRecordDispaly控件,找个喜欢的位置放好就可以了。
获取图像怎么做?可以暂停,思考一下。
VisionPro提供了获取图像的例子,可以用来学习(2 取像工具和取像队列)中工具的使用技巧。在项目中不可以完全使用。
从“单一职责”的角度考虑,界面类中不应该存在连接相机内容。界面的职责是显示,所需要的只是一张图像。就像讨厌的老板:“我只要结果,过程我不管”。
利用面向对象分析这个项目,相机是一个独立存在的个体,有自己的名字,划分为一个单独的类,很正常。这个类就命名为 Camra 。
硬件设备的使用过程通常分三步:连接→使用功能→断开。所以,Camra类的方法按照这三部分添加:GetImage,Close。连接放在构造方法中。
设计好类才,编码工作才可以开始。
相关文章
- Windows 7系统下定时关机命令操作的详细步骤
- 深度长文:从Bio到Nio到Aio,再到响应式编程
- Mozilla 测试 Firefox/100.0 用户代理,检查网站兼容性
- 替代 Windows 的 elementary OS 6 发布,该Linux迄今为止最大的更新
- 解锁工具 Windows Phone Internals 2.9.x 发布:使用 .NET 5 SDK 构建,大量增强功能
- 使用 Linux 终端浏览你的计算机
- 操作系统的线程详解
- Windows 10如何进入安全模式?
- 还不如之前顺手?Windows 11这些删减引来大量吐槽
- Windows 11不用安装!国外小哥制作在线版Windows 11,打开浏览器就能体验
- Windows 10系统,如何禁止莫名其妙安装软件?禁止安装软件操作步骤
- Firefox 91 火狐浏览器正式发布,引入增强型 Cookie 清除
- 使用 Linux 终端查看你的电脑上有哪些文件
- HarmonyOS IDL跨进程通信实现
- 服务器系统该如何选择?Windows好还Linux好?
- Mozilla Firefox 91正式版发布 使HTTPS成为私密浏览会话模式的默认选项
- 在Linux上,使用time优雅的统计程序运行时间
- 谷歌 Chrome 浏览器已支持 Android 12 的 Material You 动态主题
- Kali Linux和Parrot OS,哪个更适合安全?
- Firefox 版本号到了 100 会发生什么