日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

halcon学习笔记——机器视觉工程应用的开发思路

發布時間:2025/3/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 halcon学习笔记——机器视觉工程应用的开发思路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器視覺工程應用主要可劃分為硬件和軟件兩大部分。

硬件:工程應用的第一步就是硬件選型。硬件選型很關鍵,因為它是你后面工作的基礎。主要是光源、工業相機和鏡頭選擇。

軟件:目前業內商業庫主要有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、打開設備,獲得該設備的句柄。

? open_framegrabber('DahengCAM', 1, 1, 0, 0, 0, 0, 'interlaced', 8, 'gray', -1, 'false','HV-13xx', '1', 1, -1, AcqHandle) //連接相機,并設置相關參數

Parameter

Values

Default

Type

Description

Name

'DahengCAM'

?

string

Name of the HALCON interface.

HorizontalResolution

1

1

?

1表示水平全部,2為水平1/2,表示圖像截取。

VerticalResolution

11?

同上,表示垂直方向。

ImageWidth

<width>

0

integer

所需的圖像部分的寬度('0 '代表了完整的圖像)。

ImageHeight<height>0integer所需的圖像部分的高度(0”是完整的圖像)
StartRow<width>0integer所需的圖像部分左上方的像素行坐標
StartColumn<column>0integer所需的圖像部分左上方的像素列坐標
Field???忽視
BitsPerChannel???忽視
ColorSpace'default', 'gray', 'rgb''gray'stringHALCON圖像的通道模式
Generic???忽視
ExternalTrigger

'false', 'true'

'false'string外部觸發狀態
CameraType'HV-13xx', 'HV-20xx', 'HV-30xx', 'HV-31xx','HV-50xx', 'SV-xxxx''HV-13xx'string所連接的攝像機系列型。
Device'1', '2', '3', ...'1'string相機連接第一個設備號“1”,第二個設備編號“2”。
Port???忽視
LineIn???忽視

2、調用采集算子,獲取圖像。

grab_image (Image, AcqHandle) //(同步采集)完后處理圖像,然后再采集圖像。采集圖像的速率受處理速度影響。 grab_image_async (Image, AcqHandle,MaxDelay) //(異步采集),一幅畫面采集完后相機馬上采集下一幅畫面,不受處理速度影響。其中第三個參數為:MaxDelay,表示異步采集時可以允許的最大延時,本次采集命令距上次采集命令的時間不能超出MaxDelay,超出即重新采集。

圖像采集其他相關算子:

???? grab_image_start,該算子開始命令相機進行異步采集。只能與grab_image_async(異步采集)一起使用。

例子:

* Select a suitable image acquisition interface nameAcqName open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0,\ 'default','default','default',-1,-1,AcqHandle) grab_image(Image1,AcqHandle)//進行同步采集 * Start next grab grab_image_start(AcqHandle,-1.0)//命令相機進行異步圖像采集開始 * Process Image1 ... * Finish asynchronous grab + start next grab grab_image_async(Image2,AcqHandle,-1.0)//讀取異步采集的圖像 * Process Image2 ... close_framegrabber(AcqHandle)

3、相機參數讀寫

讀取相機參數:

info_framegrabber( : : Name, Query : Information, ValueList)

寫相機參數:

set_framegrabber_param( : : AcqHandle, Param, Value : )

?

二、圖像分割:

圖像分割的定義:
所謂圖像分割是指將圖像中具有特殊含義的不同區域分割開來,這些區域是互相不交叉的,每個區域都滿足特定區域的一致性。

1、基于閾值的圖像分割

threshold —采用全局閾值分割圖像。

格式:??? threshold(Image : Region : MinGray, MaxGray : )

自動全局閾值分割的方法:

(1)計算灰度直方圖
(2)尋找出現頻率最多的灰度值(最大值)
(3)在threshold中使用與最大值有一定距離的值作為閾值

代碼:

gray_histo(Regions, Image,AbsoluteHisto, RelativeHisto) //計算出圖像區域內的絕對和相對灰度值直方圖。 PeakGray := sort_index(AbsoluteHisto)[255] //求出出現頻率最多的灰度值 threshold(Image,Region,0,PeakGray-25)

bin_threshold — 使用一個自動確定的閾值分割圖像。

格式:??? bin_threshold(Image : Region : : )

?

dyn_threshold —使用一個局部閾值分割圖像。

格式:??? dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )

例子:

mean_image(Image,Mean,21,21) dyn_threshold(Image,Mean, RegionDynThresh,15,'dark')

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)質量檢測

轉載于:https://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的halcon学习笔记——机器视觉工程应用的开发思路的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。