機器視覺HALCON軟體學習總結
轉載: https://blog.csdn.net/jerrykile/article/details/77935309
1、halcon軟體提供的是快速的影象處理演算法解決方案,不能提供相應的介面程式設計需求,需要和VC++結合起來構造MFC介面,才能構成一套完成的可用軟體。
2、機器視覺在工業上的需求主要有二維和三維方面的
二維需求方面有:⑴識別定位;(2)OCR光學字元識別;(3)一維碼、二維碼識別及二者的結合;(4)測量類(單目相機的標定);(5)缺陷檢測系列;(6)運動控制,手眼抓取(涉及手眼標定抓取等方面)
三維需求方面:(1)攝像機雙目及多目標定(2)三維點雲資料重構
3、要成為一名合格的機器視覺工程師必須具備以下三個方面的知識
(1)影象處理涉及以下幾大領域:
A、影象處理的基本理論知識(影象理論的基礎知識)
B、影象增強(對比度拉伸、灰度變換等)
C、影象的幾何變換(仿射變換,旋轉矩陣等)
D、影象的頻域處理(傅立葉變換、DFT、小波變換、高低通濾波器設計)
E、形態學(膨脹、腐蝕、開運算和閉運算以及凸殼等)
F、影象分割(HALCON裡的Blob分析)
G、影象復原
H、運動影象
I、影象配準(模板匹配等)
J、模式識別(分類器訓練,神經網路深度學習等)
比較好的參考書籍有
經典教材:岡薩雷斯的《數字影象處理》及對應的MATLAB版
楊丹等編著《MATLAB影象處理例項詳解》
張錚等編著《數字影象處理與機器視覺——Visual C++與MATLAB實現》
左飛編著的《數字影象處理:原理與實踐(MATLAB版)》
左飛編著的《數字影象處理技術詳解與Visual C++實踐》
謝鳳英編著的《Visual C++數字影象處理》
《精通系列·精通Visual C++數字影象處理典型演算法及實現(第2版)》
(2)軟體程式設計功底
具備C,C++,C#及MFC介面開發的功底
A、C語言的學習主要看譚浩強寫的C語言相關知識
B、C++主要看C++ primer plus書籍
C、MFC的學習主要看孫鑫編寫的《VC++深入詳解》這本書及相應的視訊教程,並在VC++6.0軟體或VS2010等軟體上編寫程式和實踐。
D、C#可以看書籍《C#從入門到精通》、《Head First C#》、《C#入門經典》、
《C#圖解教程》、《C#高階程式設計》、《.Net Frameword 高階程式設計》、《CLR via C#》
(3)光學知識:
主要閱讀書籍《工程光學》、重點放在幾何光學方面,瞭解成像原理及相應的光路分析,知道光源的特性、鏡頭解析度、相機解析度等方面的知識。
光學知識主要在你設計方案時相機、光源、鏡頭等選型時起到關鍵作用。
軟體功底的作用是軟體的架構設計分析,架構包括UI層設計、業務邏輯層開發、資料層開發。
HACLON主要完成影象處理演算法的實現。
目前市場上工業領域中主流的影象演算法處理軟體有HALCON, NIvisionpro, opencv
學習HALCON最重要的是學習其中的方法、流程和套路
4、HALCON主要完成影象演算法的流程套路如下:
特徵提取總結:
1、幾何特徵(面積、周長、矩形度)2、紋理特徵(與灰度相關,如熵、能量值)
3、顏色特徵4、概率特徵5、運算元描述特徵 6、Hough特徵(梯度直方圖特徵)
做機器視覺的專案,拿到專案時一般遵循如下流程:
第一步:需求分析,建立相應的方案
第二步:演算法流程規劃及業務邏輯設計
第三步:模組化程式設計及整合化實現
第四步:除錯,根據反饋結果來不斷的修改程式Bug,達到客戶需求,最後交付客戶及軟硬體操作文件。
學習機器視覺的好方法:
1、學習機器視覺一定要結合專案實戰,在實踐中學習總結經驗教訓,系統化學習所需知識。
2、補充一定的C++和c#知識,進行VS聯合開發,客戶現場的學習和現場除錯,不斷學習示例分析,掌握方法套路流程。
3、根據實際問題,學習模組呼叫,按照方法套路學習。
4、最好是先用HALCON實現影象處理部分,然後在VS2010開發軟體中利用MFC圖形介面實現出來,實踐學習是最好的方法。
機器視覺學習的發展趨勢是結合神經網路、深度學習進行相應的人工智慧機器視覺開發。