線掃相機(jī)的原理:線掃相機(jī)一般一次只拍攝一條線(線寬通常是1個像素),在機(jī)構(gòu)運(yùn)動的過程中,線掃相機(jī)不斷地拍攝線,于是“聚線成面”,這就是線掃相機(jī)成像的原理。
線掃相機(jī)的原理決定了,它所拍攝的物體必須要運(yùn)動。機(jī)構(gòu)運(yùn)動的話,就存在機(jī)構(gòu)的速度是否和線掃相機(jī)采集的速度匹配的問題。
將對機(jī)構(gòu)運(yùn)動速度的要求進(jìn)行拆分的話,其實(shí)就是如下兩點(diǎn):
① 運(yùn)動速度必須與線掃相機(jī)的工作行頻(即采集速度)相匹配。
② 機(jī)構(gòu)的運(yùn)動速度最好是勻速,或者十分接近勻速。
如果機(jī)構(gòu)速度過快,最后的圖像在運(yùn)動方向上被壓縮;如果機(jī)構(gòu)速度過慢,最后的圖像在運(yùn)動方向上被拉伸。
判斷機(jī)構(gòu)速度是偏快還是偏慢,并不困難,困難的是定量分析,要有數(shù)據(jù)作為判斷的標(biāo)準(zhǔn)。
方案步驟說明:
① 先使用標(biāo)定板標(biāo)定,得出與相機(jī)行頻匹配的機(jī)構(gòu)運(yùn)行速度,并調(diào)節(jié)至此速度。
② 將標(biāo)定板放置在運(yùn)動的機(jī)構(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)差越小,說明機(jī)構(gòu)運(yùn)動速度越穩(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暫不能知道機(jī)構(gòu)的速度穩(wěn)定性是高還是低,但是如果有兩臺類似的機(jī)構(gòu),要評判它們的速度穩(wěn)定性的好壞, 那么這種方法可以輕松做出正確判斷。
編輯:何安
-
光電
+關(guān)注
關(guān)注
8文章
748瀏覽量
81754 -
相機(jī)
+關(guān)注
關(guān)注
4文章
1369瀏覽量
53950
原文標(biāo)題:【光電智造】線掃相機(jī)項目中定量判斷機(jī)構(gòu)運(yùn)動是否勻速的方法
文章出處:【微信號:今日光電,微信公眾號:今日光電】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
一種簡化的線掃相機(jī)單維度標(biāo)定法
![一種簡化的<b class='flag-5'>線</b><b class='flag-5'>掃</b><b class='flag-5'>相機(jī)</b>單維度標(biāo)定法](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
機(jī)器視覺如何選擇面陣相機(jī)和線掃相機(jī)
線掃相機(jī)在機(jī)器視覺中連續(xù)物體的檢測解決方案
如何判斷線掃相機(jī)項目中定量判斷機(jī)構(gòu)運(yùn)動是否勻速呢
線掃工業(yè)鏡頭的成像原理
![<b class='flag-5'>線</b><b class='flag-5'>掃</b>工業(yè)鏡頭的成像原理](https://file1.elecfans.com/web2/M00/8C/D0/wKgZomSyUyaAbLmTAABIqEFZOx8104.png)
用于視覺檢測的線掃遠(yuǎn)心鏡頭VS-LTC系列
![用于視覺檢測的<b class='flag-5'>線</b><b class='flag-5'>掃</b>遠(yuǎn)心鏡頭VS-LTC系列](https://file1.elecfans.com/web2/M00/A4/11/wKgaomUAIdiAMXMWAABkIAifyjQ452.png)
線掃相機(jī)工作原理是什么
線掃相機(jī)速度和行頻的關(guān)系
新品 | Moritex 推出匹配16K3.5μ相機(jī)的線掃鏡頭LU6040
![新品 | Moritex 推出匹配16K3.5μ<b class='flag-5'>相機(jī)</b>的<b class='flag-5'>線</b><b class='flag-5'>掃</b>鏡頭LU6040](https://file.elecfans.com/web2/M00/02/C4/pYYBAGDSzfeAP86XAAAO5PbqJbI698.png)
評論