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