機器視覺工程應用主要可劃分為硬體和軟體兩大部分。
硬體:工程應用的第一步就是硬體選型。硬體選型很關鍵,因為它是你後面工作的基礎。主要是光源、工業相機和鏡頭選擇。
軟體:目前業内商業庫主要有Halcon,康耐視,DALSA,evision,NI等,開源庫有OpenCV.其中NI的labview+vision子產品。
機器視覺工程應用的基本開發思路是:
一、圖像采集,二、圖像分割,三、形态學處理,四、特征提取,五、輸出結果。
下面在Halcon下對這四個步驟進行講解。
一、圖像采集:
Halcon通過imageacquisition interfaces對各種圖像采集卡及各種工業相機進行支援。其中包括:模拟視訊信号,數字視訊信号Camera Link,數字視訊信号IEEE 1394,數字視訊信号USB2.0,數字視訊信号Gigabit Ethernet等。
Halcon通過統一的接口封裝上述不同相機的image acquisition interfaces,進而達到算子統一化。不同的相機隻需更改幾個參數就可變更使用。
Halcon圖像擷取的思路:1、打開裝置,獲得該裝置的句柄。2、調用采集算子,擷取圖像。
1、打開裝置,獲得該裝置的句柄。
Parameter
Values
Default
Type
Description
Name
'DahengCAM'
string
Name of the HALCON interface.
HorizontalResolution
1
1表示水準全部,2為水準1/2,表示圖像截取。
VerticalResolution
同上,表示垂直方向。
ImageWidth
<width>
integer
所需的圖像部分的寬度('0 '代表了完整的圖像)。
ImageHeight
<height>
所需的圖像部分的高度(0”是完整的圖像)
StartRow
所需的圖像部分左上方的像素行坐标
StartColumn
<column>
所需的圖像部分左上方的像素列坐标
Field
忽視
BitsPerChannel
ColorSpace
'default', 'gray', 'rgb'
'gray'
HALCON圖像的通道模式
Generic
ExternalTrigger
'false', 'true'
'false'
外部觸發狀态
CameraType
'HV-13xx', 'HV-20xx', 'HV-30xx', 'HV-31xx','HV-50xx', 'SV-xxxx'
'HV-13xx'
所連接配接的錄影機系列型。
Device
'1', '2', '3', ...
'1'
相機連接配接第一個裝置号“1”,第二個裝置編号“2”。
Port
LineIn
2、調用采集算子,擷取圖像。
圖像采集其他相關算子:
grab_image_start,該算子開始指令相機進行異步采集。隻能與grab_image_async(異步采集)一起使用。
例子:
3、相機參數讀寫
讀取相機參數:
info_framegrabber( : : Name, Query : Information, ValueList)
寫相機參數:
set_framegrabber_param( : : AcqHandle, Param, Value : )
二、圖像分割:
圖像分割的定義:
所謂圖像分割是指将圖像中具有特殊含義的不同區域分割開來,這些區域是互相不交叉的,每個區域都滿足特定區域的一緻性。
1、基于門檻值的圖像分割
threshold —采用全局門檻值分割圖像。
格式: threshold(Image : Region : MinGray, MaxGray : )
自動全局門檻值分割的方法:
(1)計算灰階直方圖
(2)尋找出現頻率最多的灰階值(最大值)
(3)在threshold中使用與最大值有一定距離的值作為門檻值
代碼:
bin_threshold — 使用一個自動确定的門檻值分割圖像。
格式: bin_threshold(Image : Region : : )
dyn_threshold —使用一個局部門檻值分割圖像。
格式: dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )
var_threshold —門檻值圖像局部均值和标準差的分析。
格式: var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )
2、基于邊緣的圖像分割:尋找區域之間的邊界
watersheds —從圖像中提取分水嶺和盆地。
格式: watersheds(Image : Basins, Watersheds : : )
watersheds_threshold —使用門檻值從圖像中提取分水嶺和盆地。
格式: watersheds_threshold(Image : Basins : Threshold : )
3、基于區域的圖像分割:直接建立區域
三、形态學處理
形态學處理以集合運算為基礎。
腐蝕、膨脹、開操作、閉操作是所有形态學圖像處理的基礎。
開操作(先腐蝕再膨脹)使對象的輪廓變得光滑,斷開狹窄的間斷和消除細的突出物。
閉操作(先膨脹再腐蝕)消彌狹窄的間斷和長細的鴻溝,消除小的孔洞,填補輪廓線的斷裂。
形體學基礎算子:
erosion1
dilation1
opening
closing
常用的形态學相關算子
connection
select_shape
opening_circle
closing_circle
opening_rectangle1
closing_rectangle1
complement
difference
intersection
union1
shaps_trans
fill_up
形态學進階算子:
boundary
skeleton
四、特征提取:
1、區域特征:
area
moments
smallest_rectangle1
smallest_circle
convexity:區域面積與凸包面積的比例
contlength:區域邊界的長度
compactness
2、灰階特征
estimate_noise
select_gray
五、輸出結果:
(1)擷取滿足條件的區域
(2)區域分類,比如OCR
(3)測量
(4)品質檢測
本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/sky-heaven/p/6004487.html,如需轉載請自行聯系原作者