線掃相機的原理:線掃相機一般一次只拍攝一條線(線寬通常是1個像素),在機構(gòu)運動的過程中,線掃相機不斷地拍攝線,于是“聚線成面”,這就是線掃相機成像的原理。
線掃相機的原理決定了,它所拍攝的物體必須要運動。機構(gòu)運動的話,就存在機構(gòu)的速度是否和線掃相機采集的速度匹配的問題。
將對機構(gòu)運動速度的要求進(jìn)行拆分的話,其實就是如下兩點:
① 運動速度必須與線掃相機的工作行頻(即采集速度)相匹配。
② 機構(gòu)的運動速度最好是勻速,或者十分接近勻速。
如果機構(gòu)速度過快,最后的圖像在運動方向上被壓縮;如果機構(gòu)速度過慢,最后的圖像在運動方向上被拉伸。
判斷機構(gòu)速度是偏快還是偏慢,并不困難,困難的是定量分析,要有數(shù)據(jù)作為判斷的標(biāo)準(zhǔn)。
方案步驟說明:
① 先使用標(biāo)定板標(biāo)定,得出與相機行頻匹配的機構(gòu)運行速度,并調(diào)節(jié)至此速度。
② 將標(biāo)定板放置在運動的機構(gòu)上,采集標(biāo)定板的圖像,需注意的是,標(biāo)定板需要大致擺正。
③ 將采集到的標(biāo)定板圖像做初步處理,例如裁掉多余的部分以便于后續(xù)處理。(這一步不是必須的)
④ 通過算法得到標(biāo)定板中所有圓的最小外接平行矩形的高,計算這張圖中所有圓對應(yīng)的“高”的標(biāo)準(zhǔn)差。
⑤ 為了減少誤差,可以對多張標(biāo)定板圖像執(zhí)行以上算法,觀察得到的所有標(biāo)準(zhǔn)差數(shù)據(jù)。標(biāo)準(zhǔn)差越小,說明機構(gòu)運動速度越穩(wěn)定。
Halcon程序如下:
*
載入當(dāng)前目錄下的全部圖片 list_files ('', ['files','follow_links'], ImageFiles) tuple_regexp_select (ImageFiles, ['\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles) for Index :=0 to |ImageFiles| - 1 by 1 dev_clear_window () read_image (Image, ImageFiles[Index]) threshold (Image, Region, 0, 210) fill_up_shape (Region, Region, 'area', 1, 100) opening_circle (Region, RegionOpening, 5.5) connection (RegionOpening, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'roundness', 'and', 0.9, 1) select_shape (SelectedRegions, SelectedRegions1, 'area', 'and', 10550, 19999) smallest_rectangle1 (SelectedRegions1, Row1, Column1, Row2, Column2) gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2) inner_circle (SelectedRegions1, Row, Column, Radius) dev_display (Image) dev_set_draw ('margin') dev_display (Rectangle) hight := [] for Index := 0 to |Row1| -1 by 1 *設(shè)置字體和字號 set_font (3600, '-Courier New-10-') *顯示每個圓的最小外接矩形的高和寬 disp_message (3600,((Row2[Index] - Row1[Index]) + ' '+ (Column2[Index] - Column1[Index])) , 'image', Row1[Index] - 70, Column1[Index], 'black', 'true') tuple_concat (hight, Row2[Index] - Row1[Index], hight) endfor if (|hight| > 1) *求元組中所有元素的標(biāo)準(zhǔn)差 tuple_deviation (hight, Deviation) set_font (3600, '-Courier New-20-') disp_message (3600, '縱向高度標(biāo)準(zhǔn)差:' + Deviation + ' ' + |hight| + '個圓' , 'image', 50, 50, 'black', 'true') endif stop() endfor
處理結(jié)果:
由于沒有對比,因此標(biāo)準(zhǔn)差 = 1.54634暫不能知道機構(gòu)的速度穩(wěn)定性是高還是低,但是如果有兩臺類似的機構(gòu),要評判它們的速度穩(wěn)定性的好壞, 那么這種方法可以輕松做出正確判斷。
審核編輯:劉清
-
相機成像
+關(guān)注
關(guān)注
0文章
15瀏覽量
5644
原文標(biāo)題:線掃相機項目中定量判斷機構(gòu)運動是否勻速的方法
文章出處:【微信號:機器視覺沙龍,微信公眾號:機器視覺沙龍】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論