常用的圖像處理算法:
1、圖像變換:(空域與頻域、幾何變換、色度變換、尺度變換)
幾何變換:圖像平移、旋轉、鏡像、轉置;
尺度變換:圖像縮放、插值算法(最近鄰插值、線性插值、雙三次插值);
空域與頻域間變換:由于圖像陣列很大,直接在空間域中進行處理,涉及計算量很大。因此,有時候需要將空間域變換到頻域進行處理。例如:傅立葉變換、沃爾什變換、離散余弦變換等間接處理技術,將空間域的處理轉換為頻域處理,不僅可減少計算量,而且可獲得更有效的處理(如傅立葉變換可在頻域中進行數字濾波處理)。
2、圖像增強:
圖像增強不考慮圖像降質的原因,突出圖像中所感興趣的部分。如強化圖像高頻分量,可使圖像中物體輪廓清晰,細節明顯;如強化低頻分量可減少圖像中噪聲影響。
灰度變換增強(線性灰度變換、分段線性灰度變換、非線性灰度變換);
直方圖增強(直方圖統計、直方圖均衡化);
圖像平滑/降噪(鄰域平均法、加權平均法、中值濾波、非線性均值濾波、高斯濾波、雙邊濾波);
圖像(邊緣)銳化:梯度銳化,Roberts算子、Laplace算子、Sobel算子等;
3、紋理分析(取骨架、連通性);
4、圖像分割:
圖像分割是將圖像中有意義的特征部分提取出來,其有意義的特征有圖像中的邊緣、區域等,這是進一步進行圖像識別、分析和理解的基礎。
(1)閾值分割(固定閾值分割、最優/OTSU閾值分割、自適應閾值分割);
(2)基于邊界分割(Canny邊緣檢測、輪廓提取、邊界跟蹤);
(3)Hough變換(直線檢測、圓檢測);
(4)基于區域分割(區域生長、區域歸并與分裂、聚類分割);
(5)色彩分割;
(6)分水嶺分割;
5、圖像特征:
(1)幾何特征(位置與方向、周長、面積、長軸與短軸、距離(歐式距離、街區距離、棋盤距離));
(2)形狀特征(幾何形態分析(Blob分析):矩形度、圓形度、不變矩、偏心率、多邊形描述、曲線描述);
(3)幅值特征(矩、投影);
(4)直方圖特征(統計特征):均值、方差、能量、熵、L1范數、L2范數等;直方圖特征方法計算簡單、具有平移和旋轉不變性、對顏色像素的精確空間分布不敏感等,在表面檢測、缺陷識別有不少應用。
(5)顏色特征(顏色直方圖、顏色矩)
(6)局部二值模式( LBP)特征:LBP對諸如光照變化等造成的圖像灰度變化具有較強的魯棒性,在表面缺陷檢測、指紋識別、光學字符識別、人臉識別及車牌識別等領域有所應用。由于LBP 計算簡單,也可以用于實時檢測。
6、圖像/模板匹配:
輪廓匹配、歸一化積相關灰度匹配、不變矩匹配、最小均方誤差匹配
7、色彩分析
色度、色密度、光譜、顏色直方圖、自動白平衡
8、圖像數據編碼壓縮和傳輸
圖像編碼壓縮技術可減少描述圖像的數據量(即比特數),以便節省圖像傳輸、處理時間和減少所占用的存儲器容量。壓縮可以在不失真的前提下獲得,也可以在允許的失真條件下進行。編碼是壓縮技術中最重要的方法,它在圖像處理技術中是發展最早且比較成熟的技術。
9、表面缺陷目標識別算法:
傳統方法:貝葉斯分類、K最近鄰(KNN)、人工神經網絡(ANN)、支持向量機(SVM)、K-means等;
10、圖像分類(識別)
圖像分類(識別)屬于模式識別的范疇,其主要內容是圖像經過某些預處理(增強、復原、壓縮)后,進行圖像分割和特征提取,從而進行判決分類。
11、圖像復原
圖像復原要求對圖像降質的原因有一定的了解,一般講應根據降質過程建立“降質模型”,再采用某種濾波方法,恢復或重建原來的圖像。
現有可用的視覺檢測軟件/庫
1、可二次開發的視覺系統:Labview、DVT、Halcon、OpenCV等。
2、常用的視覺檢測軟件/庫
視覺開發軟件工具 Halcon、VisionPro、LabView、OpenCV, 還有eVision、Mil、Sapera等。
(一)、Halcon:底層功能算法多,運算性能快,功能齊全,容易上手,開發項目周期短。非開源項目,商用收費,價格較貴。
Halcon:Halcon是德國MVtec公司開發的一套完善的標準的機器視覺算法包,擁有應用廣泛的機器視覺集成開發環境。它是一套image processing library,由一千多個各自獨立的函數,以及底層的數據管理核心構成。其中包含了各類濾波,色彩以及幾何,數學轉換,型態學計算分析,校正,分類辨識,形狀搜尋等等基本的幾何以及影像計算功能。整個函數庫可以用C,C++,C#,Visual basic和Delphi等多種普通編程語言訪問。Halcon為大量的圖像獲取設備提供接口,保證了硬件的獨立性。
(二)OpenCV:功能算法相對較多(比Halcon少),開源,可用于商用,開發周期較長(比Halcon長),有些算法要自己寫。
OpenCV是一個基于(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。其核心輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,實現了圖像處理和計算機視覺方面的很多通用算法。OpenCV用C++語言編寫,它的主要接口也是C++語言。該庫也有大量的Python, Java and MATLAB/OCTAVE的接口,如今也提供對于C#, Ruby的支持。OpenCV可以在 Windows, Android, Maemo, FreeBSD, OpenBSD, iOS,Linux 和Mac OS等平臺上運行。
OpenCV出身:OpenCV是Intel開源計算機視覺庫。其核心由一系列 C 函數和少量 C++ 類構成,實現了圖像處理和計算機視覺方面的很多通用算法。OpenCV 的特點擁有包括300多個C函數的跨平臺的中、高層 API 跨平臺:Windows, Linux;免費(FREE):無論對非商業應用和商業應用;速度快;使用方便。
OpenCV具有以下的特征:(1)開源計算機視覺采用C/C++編寫。(2)使用目的是開發實時應用程序。(3)獨立與操作系統、硬件和圖形管理器。(4)具有通用的圖象/視頻載入、保存和獲取模塊。(5)具有底層和高層的應用開發包。
應用OpenCV能夠實現以下功能:(1)對圖象數據的操作,包括分配、釋放、復制和轉換數據。(2)對圖象和視頻的輸入輸出,指文件和攝像頭作為輸入,圖象和視頻文件作為輸出。(3)具有對距陳和向量的操作以及線性代數的算法程序,包括距陣、解方程、特征值以及奇異值。(4)可對各種動態數據結構,如列表、隊列、集合、樹和圖等進行操作。(5)具有基本的數字圖象處理能力,如可進行濾波、邊緣檢測、角點檢測、采樣與差值、色彩轉換、形態操作、直方圖和圖象金字塔等操作。
(6)可對各種結構進行分析,包括連接部件分析、輪廓處理、距離變換、各種距的計算、模板匹配、Hongh變換、多邊形逼近、直線擬合、橢圓擬合和Delaunay三角劃分等。(7)對攝像頭的定標,包括發現與跟蹤定標模式、定標、基本矩陣估計、齊次矩陣估計和立體對應。(8)對運動的分析,如對光流、運動分割和跟蹤的分析。(9)對目標的識別,可采用特征法和隱馬爾科夫模型(HMM)法。(10)具有基本的GUI功能,包括圖像與視頻顯示、鍵盤和鼠標事件處理及滾動條等。(11)可對圖像進行標注,如對線、二次曲線和多邊形進行標注,還可以書寫文字(目前之支持中文)。
(三)VisionPro
VisionPro是美國康耐視Cognex公司提供全套視覺解決方案。VisionPro提供多種開發工具拖放式界面、簡單指令碼和編程方式等,全面支持所有模式的開發。用戶利用VisionPro QuickBuild可以無需編程配置讀取、選擇并優化視覺工具,決定產品是否合格。用戶也可以利用C++、C#、VB及.NET開發管理應用程序。Vision Pro提供的.NET程序接口允許用戶采用面向對象的高級語言編程訪問所有工具,以高效開發客戶的專用視覺方案。
(四)LabView
LabView是一種程序開發環境,由美國國 家儀器(NI)公司研制開發,使用的是圖形化編輯語言G編寫程序,產生的程序是框圖的形式。LabView軟件是NI設計平臺的核心,也是開發測量或控制系統的理想選擇。LabView開發環境集成了工程師和科學家快速構建各種應用所需的所有工具,旨在幫助工程師和科學家解決問題、提高生產力和不斷創新。
HSV顏色識別-HSV基本顏色分量范圍
一般對顏色空間的圖像進行有效處理都是在HSV空間進行的,然后對于基本色中對應的HSV分量需要給定一個嚴格的范圍,下面是通過實驗計算的模糊范圍(準確的范圍在網上都沒有給出)。
H: 0 — 180
S: 0 — 255
V: 0 — 255
HSV(色相/飽和度/明度)顏色空間是表示類似于RGB顏色模型的顏色空間的模型。根據色相通道(Channel)對顏色類型進行建模,因此在需要根據顏色對對象進行分割的圖像處理任務中非常有用。飽和度的變化代表顏色成分的多少。明度通道描述顏色的亮度。
原文標題:機器視覺工業缺陷檢測的那些事
文章出處:【微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
圖像處理
+關注
關注
27文章
1296瀏覽量
56823 -
機器視覺
+關注
關注
162文章
4399瀏覽量
120495
原文標題:機器視覺工業缺陷檢測的那些事
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論