[请益] 关于相机抓取的问题

楼主: geroge0820 (可.....可恶)   2017-12-03 20:55:52
小弟是刚进公司不满一年的新人
公司用NI Vision这个软件作瑕疵辨识
搭配许多牌子的工业相机
最近主管想要作一个类似的软件来替代
所以希望我从相机连接开始实作(C#开发)
目标是可以同时抓取不同牌子的相机
作瑕疵辨识
但是目前遇到了困难
NI的软件可以直接显示出
目前电脑连接哪些牌子的相机及型号
但是我在实作上
则必须先选择这个牌子的相机驱动
才会抓到目前有哪个牌子的相机有连接
我目前想到的方法是
引用要用到的相机牌子的library
但是我觉得这应该不是最好的办法
如果有10种牌子要用 就要引用10种
程式一定会很肥
想请问各位版大
有没有什么办法可以达到一样的功能
作者: MOONY135 (谈无欲)   2017-12-03 21:10:00
不然你还有什么方法可以知道相机有没有连结?通灵吗VID PID 当USB有插拔事件的时候就去扫
作者: anumis (阿努米斯)   2017-12-03 21:59:00
用 MEF 技术+ interface 规划,把不同相机的library 模组化。这是我现在遇到不同家运动控制+Dio 卡但要在同一个系统上运作的处理方式或是走 webcam的方式去抓
作者: stupid0319 (征女友)   2017-12-03 22:09:00
NI的软件拿来ollydbg看看?
作者: GoalBased (Artificail Intelligence)   2017-12-03 22:32:00
什么叫程式一定会很肥,为什么不算一下
作者: Hordor (Hordor)   2017-12-03 23:27:00
请爱用 design pattern:Strategy Pattern
作者: vi000246 (Vi)   2017-12-03 23:52:00
同楼上跟anumis大的方法
作者: anumis (阿努米斯)   2017-12-04 01:00:00
我的方法是每个模组有自己的硬件设定档,模组加载时会去读取并初始化;上层运用端只要处加载模组的程式码,并依interface提供的内容去操作,硬件端就全黑箱让模组自己去跑你现实应用上最多用到2种不同的相机,所以只依需要加载写好的模组DLL档就好,还可以训练自已对系统模组化的能力简单来说,就是"扩充元件"的概念
作者: sunsamy   2017-12-04 12:26:00
因为你没有抽象层,没有解耦掉相机的实作可以参考"我这样解释OOP对吗"系列文章PolicyBased Design Pattern都是在讲同一件事
作者: ripple0129 (perry tsai)   2017-12-04 12:48:00
genicam喂狗看看是不是你要的

Links booklink

Contact Us: admin [ a t ] ucptt.com