線(xiàn)掃相機(jī)的原理:線(xiàn)掃相機(jī)一般一次只拍攝一條線(xiàn)(線(xiàn)寬通常是1個(gè)像素),在機(jī)構(gòu)運(yùn)動(dòng)的過(guò)程中,線(xiàn)掃相機(jī)不斷地拍攝線(xiàn),于是“聚線(xiàn)成面”,這就是線(xiàn)掃相機(jī)成像的原理。
線(xiàn)掃相機(jī)的原理決定了,它所拍攝的物體必須要運(yùn)動(dòng)。機(jī)構(gòu)運(yùn)動(dòng)的話(huà),就存在機(jī)構(gòu)的速度是否和線(xiàn)掃相機(jī)采集的速度匹配的問(wèn)題。
將對(duì)機(jī)構(gòu)運(yùn)動(dòng)速度的要求進(jìn)行拆分的話(huà),其實(shí)就是如下兩點(diǎn):
① 運(yùn)動(dòng)速度必須與線(xiàn)掃相機(jī)的工作行頻(即采集速度)相匹配。
② 機(jī)構(gòu)的運(yùn)動(dòng)速度最好是勻速,或者十分接近勻速。
如果機(jī)構(gòu)速度過(guò)快,最后的圖像在運(yùn)動(dòng)方向上被壓縮;如果機(jī)構(gòu)速度過(guò)慢,最后的圖像在運(yùn)動(dòng)方向上被拉伸。

判斷機(jī)構(gòu)速度是偏快還是偏慢,并不困難,困難的是定量分析,要有數(shù)據(jù)作為判斷的標(biāo)準(zhǔn)。
方案步驟說(shuō)明:
① 先使用標(biāo)定板標(biāo)定,得出與相機(jī)行頻匹配的機(jī)構(gòu)運(yùn)行速度,并調(diào)節(jié)至此速度。
② 將標(biāo)定板放置在運(yùn)動(dòng)的機(jī)構(gòu)上,采集標(biāo)定板的圖像,需注意的是,標(biāo)定板需要大致擺正。
③ 將采集到的標(biāo)定板圖像做初步處理,例如裁掉多余的部分以便于后續(xù)處理。(這一步不是必須的)
④ 通過(guò)算法得到標(biāo)定板中所有圓的最小外接平行矩形的高,計(jì)算這張圖中所有圓對(duì)應(yīng)的“高”的標(biāo)準(zhǔn)差。
⑤ 為了減少誤差,可以對(duì)多張標(biāo)定板圖像執(zhí)行以上算法,觀察得到的所有標(biāo)準(zhǔn)差數(shù)據(jù)。標(biāo)準(zhǔn)差越小,說(shuō)明機(jī)構(gòu)運(yùn)動(dòng)速度越穩(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è)置字體和字號(hào)
set_font (3600, '-Courier New-10-')
*顯示每個(gè)圓的最小外接矩形的高和寬
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| + '個(gè)圓' , 'image', 50, 50, 'black', 'true')
endif
stop()
endfor
處理結(jié)果:

由于沒(méi)有對(duì)比,因此標(biāo)準(zhǔn)差 = 1.54634暫不能知道機(jī)構(gòu)的速度穩(wěn)定性是高還是低,但是如果有兩臺(tái)類(lèi)似的機(jī)構(gòu),要評(píng)判它們的速度穩(wěn)定性的好壞, 那么這種方法可以輕松做出正確判斷。
編輯:何安
-
光電
+關(guān)注
關(guān)注
8文章
820瀏覽量
82884 -
相機(jī)
+關(guān)注
關(guān)注
5文章
1535瀏覽量
55390
原文標(biāo)題:【光電智造】線(xiàn)掃相機(jī)項(xiàng)目中定量判斷機(jī)構(gòu)運(yùn)動(dòng)是否勻速的方法
文章出處:【微信號(hào):今日光電,微信公眾號(hào):今日光電】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
傳統(tǒng)CCD線(xiàn)掃相機(jī)與寬幅線(xiàn)掃相機(jī)
光柵上部回掃線(xiàn)故障,測(cè)量與檢修的簡(jiǎn)易方法
一種簡(jiǎn)化的線(xiàn)掃相機(jī)單維度標(biāo)定法
線(xiàn)掃相機(jī)的原理
機(jī)器視覺(jué)如何選擇面陣相機(jī)和線(xiàn)掃相機(jī)
線(xiàn)掃相機(jī)在機(jī)器視覺(jué)中連續(xù)物體的檢測(cè)解決方案
掃碼器設(shè)計(jì)方案:物流掃碼固定式掃描相機(jī)BXT-10M 自動(dòng)分揀讀碼器 條碼識(shí)別掃碼器
如何判斷線(xiàn)掃相機(jī)項(xiàng)目中定量判斷機(jī)構(gòu)運(yùn)動(dòng)是否勻速呢
線(xiàn)掃工業(yè)鏡頭的成像原理
用于視覺(jué)檢測(cè)的線(xiàn)掃遠(yuǎn)心鏡頭VS-LTC系列

線(xiàn)掃相機(jī)的原理和判斷方法
評(píng)論