[請益] 關於相機抓取的問題

作者: 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