0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文學(xué)會(huì),膠位偏移、缺膠、斷膠、溢膠檢測(cè)(含源碼)

新機(jī)器視覺(jué) ? 來(lái)源:CSDN博主「小邢同學(xué)」 ? 2024-03-30 14:40 ? 次閱讀

檢測(cè)任務(wù)

點(diǎn)膠檢查檢測(cè)以下缺陷:
1.缺少粘合膠的部分(斷膠)
2.粘合劑過(guò)多或過(guò)少的部分(溢膠、缺膠)
3.粘合膠離其預(yù)定位置太遠(yuǎn)(點(diǎn)膠偏移)

halcon對(duì)應(yīng)示例程序:
apply_bead_inspection_model.hdev

效果圖示:

2991e3a0-ee50-11ee-a297-92fbcf53809c.png

299cd09e-ee50-11ee-a297-92fbcf53809c.png

29b553c6-ee50-11ee-a297-92fbcf53809c.png


檢測(cè)思路

示例程序的圖像處理思路:

1.使用halcon的可變形模板匹配,將檢測(cè)物品轉(zhuǎn)正,方便檢測(cè)
這里我們用的較少,因?yàn)槲覀兤綍r(shí)在做點(diǎn)膠檢測(cè)的時(shí)候,用普通的模板匹配,還有普通的2D仿射變換就可以保證圖像的一致性。

2.定義粘合膠條的參考路徑,以及膠條的寬度,還有誤差容忍值
注意,這里halcon的官方例程是給了一個(gè)軌跡的點(diǎn)集,我們?cè)趯?shí)際的檢測(cè)中,可以使用CAD圖紙導(dǎo)入或者手繪路徑,完成此步驟。關(guān)于CAD圖紙導(dǎo)入halcon我會(huì)出一期教學(xué)博客,寫(xiě)完了把鏈接貼上來(lái)。

3. 利用算子create_bead_inspection_model 創(chuàng)建點(diǎn)膠軌跡模型
創(chuàng)建點(diǎn)膠軌跡的模型,相當(dāng)于我們使用模板匹配時(shí)候用到的穿件模板算子,也不難的。到第三步,我們已經(jīng)完成了創(chuàng)建模板與點(diǎn)膠軌跡模型的步驟,準(zhǔn)備工作都進(jìn)行完畢,接下來(lái)就要進(jìn)行檢測(cè)了。

4.校正胎圈的位置,并生成四條平行輪廓,進(jìn)行顯示
顯示一下前面準(zhǔn)備工作的結(jié)果,包括膠軌跡的樣子,可容許膠軌跡范圍等。

5.讀入待檢測(cè)圖像,并進(jìn)行校正,最后利用算子apply_bead_inspection_model進(jìn)行點(diǎn)膠軌跡檢測(cè)
從這一步開(kāi)始,就使用前面幾部的模板,進(jìn)行點(diǎn)膠軌跡的檢測(cè)了。首先我們先把圖片進(jìn)行一個(gè)仿射變換,轉(zhuǎn)正圖片,讓我們處理的點(diǎn)膠區(qū)域每次都保持一致。這樣極大地減小了處理難度。再調(diào)用apply_bead_inspection_model進(jìn)行點(diǎn)膠軌跡檢測(cè),就檢測(cè)完成啦。是不是并不難。

6.根據(jù)不同的檢測(cè)類(lèi)型在窗口上進(jìn)行相關(guān)顯示
最后搞個(gè)交互界面顯示一下結(jié)果就OK了啦。

點(diǎn)膠質(zhì)量檢測(cè)代碼及解析

在本例中,圖片矯正使用平面可變形匹配。

dev_update_off ()


首先使用仿射變換將圖片轉(zhuǎn)正,之后創(chuàng)建平面可變形模模板
這一步就是為了讓每次處理的圖片一致性好。

prepare_alignment (RegionPart, RowT, ColumnT, ModelID)

求取檢測(cè)區(qū)域的最小矩形,這樣的好處是只對(duì)需要進(jìn)行圖像處理的區(qū)域進(jìn)行處理,使算法速度增加。

smallest_rectangle1 (RegionPart, PartRow1, PartColumn1, PartRow2, PartColumn2)


定義點(diǎn)膠軌跡的參考路徑
//這里使用軌跡點(diǎn)集創(chuàng)建點(diǎn)膠軌跡,也可以通過(guò)在參考圖像上繪制該路徑來(lái)生成,例如使用算子draw_nurbs.

gen_contour_nurbs_xld (ContourRef, [701.767,626.953,538.867,443.54,390.447,360.28,354.247,363.9,400.1,458.02,509.907,588.34,659.533,696.94], [319.24,336.133,367.507,431.46,489.38,546.093,646.247,722.267,776.567,826.04,869.48,912.92,934.64,929.813], ‘auto’, [15,15,15,15,15,15,15,15,15,15,15,15,15,15], 3, 1, 5)


定義點(diǎn)膠軌跡模板創(chuàng)建變量

TargetWidth := 14
WidthTolerance := 7
PositionTolerance := 30
Polarity := ‘dark’


創(chuàng)建點(diǎn)膠軌跡模板
//參數(shù)說(shuō)明:參考輪廓(ContourRef);膠軌跡標(biāo)準(zhǔn)寬度(TargetWidth);膠軌跡寬度誤差大?。╓idthTolerance);膠軌跡寬所在的區(qū)域范圍(PositionTolerance);膠軌跡顏色(Polarity);進(jìn)行處理的sigma與閾值([], []);創(chuàng)建出的模板(BeadInspectionModel)

create_bead_inspection_model (ContourRef, TargetWidth, WidthTolerance, PositionTolerance, Polarity, [], [], BeadInspectionModel)


讀入圖片進(jìn)行顯示點(diǎn)膠軌跡、描述信息

read_image (Image, ‘bead/adhesive_bead_01’)


矯正圖像,使圖像與之前的圖像保持較好的一致性

align_bead (Image, ImageAligned, ModelID, RowT, ColumnT) //校正


創(chuàng)建兩個(gè)平行輪廓,用于顯示正確點(diǎn)膠軌跡的寬度,并將兩個(gè)輪廓合并到一個(gè)變量中

gen_parallel_contour_xld (ContourRef, ModelSide1, ‘regression_normal’, TargetWidth * 0.5)
gen_parallel_contour_xld (ContourRef, ModelSide2, ‘regression_normal’, -TargetWidth * 0.5)
concat_obj (ModelSide1, ModelSide2, ModelSides)


創(chuàng)建兩個(gè)平行輪廓,用于顯示正確點(diǎn)膠軌跡容許范圍,并將兩個(gè)輪廓合并到一個(gè)變量中

gen_parallel_contour_xld (ContourRef, PositionToleranceSide1, ‘regression_normal’, PositionTolerance)
gen_parallel_contour_xld (ContourRef, PositionToleranceSide2, ‘regression_normal’, -PositionTolerance)
concat_obj (PositionToleranceSide1, PositionToleranceSide2, PositionToleranceSides)


halcon顯示操作相關(guān)操作

dev_close_window ()
dev_open_window_fit_size (0, 0, PartColumn2 - PartColumn1 + 1, PartRow2 - PartRow1 + 41, -1, -1, WindowHandle)
set_display_font (WindowHandle, 16, ‘mono’, ‘true’, ‘false’)
dev_set_part (PartRow1 - 20, PartColumn1, PartRow2 + 20, PartColumn2)
dev_display (ImageAligned)
dev_set_line_width (2)
dev_set_color (‘green’)
dev_display (ContourRef) //粘合膠條的參考路徑
dev_set_line_width (1)
dev_display (ModelSides) //膠條的寬度
dev_set_color (‘yellow’)
dev_display (PositionToleranceSides) //容許點(diǎn)膠范圍


顯示描述文本

Message := ‘Correct adhesive bead and the reference contour. The’
Message[1] := ‘yellow contours indicate the range of position tolerance.’
disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop ()
*

開(kāi)始讀入圖片進(jìn)行檢測(cè)

TextOffset := 20 //偏移值
NumImages := 7
for Index := 1 to NumImages by 1
read_image (Image, ‘bead/adhesive_bead_’ + Index$‘02’)


矯正圖片

align_bead (Image, ImageAligned, ModelID, RowT, ColumnT)


使用之前生成的點(diǎn)膠軌跡模板,進(jìn)行點(diǎn)膠軌跡檢測(cè)
//參數(shù)說(shuō)明:進(jìn)行檢測(cè)的圖像(ImageAligned);膠軌跡左輪廓(LeftContour);膠軌跡右輪廓(RightContour);膠軌跡寬缺陷所在位置(ErrorSegment);使用的模板(BeadInspectionModel);缺陷種類(lèi)(ErrorType)

apply_bead_inspection_model (ImageAligned, LeftContour, RightContour, ErrorSegment, BeadInspectionModel, ErrorType)

顯示點(diǎn)膠軌跡,檢測(cè)結(jié)果等相關(guān)信息

dev_display (ImageAligned)
dev_set_line_width (1)
dev_set_color (‘white’)
dev_display (ContourRef)
dev_display (ModelSides)
dev_display (PositionToleranceSides)
dev_set_line_width (2)
dev_set_color (‘green’)
dev_display (LeftContour) //檢測(cè)出的內(nèi)部XLD
dev_display (RightContour) //檢測(cè)出的外部XLD
dev_set_color (‘red’)
dev_display (ErrorSegment) //錯(cuò)誤部分區(qū)域


if (|ErrorType| == 0)
沒(méi)有錯(cuò)誤信息,顯示OK
Message := ‘Adhesive bead is OK’
disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘white’, ‘forest green’)
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop ()
else
有錯(cuò)誤信息,顯示not OK,并且顯示缺陷種類(lèi),標(biāo)識(shí)缺陷位置
Message[0] := ‘Adhesive bead is not OK:’
ErrorClasses := [‘no bead’,‘too thin’,‘too thick’,‘incorrect position’]
for ClassIndex := 0 to |ErrorClasses| - 1 by 1
Class := ErrorClasses[ClassIndex]
ErrorIndices := find(ErrorType,Class)
if (ErrorIndices != -1)
select_obj (ErrorSegment, SelectedSegments, ErrorIndices + 1)
dev_set_color (‘red’)
dev_set_line_width (3)
if (Class != ‘no bead’)
gen_display_segments (SelectedSegments, LeftContour, RightContour, ErrorParts)
dev_display (ErrorParts)
else
dev_display (SelectedSegments)
endif
area_center_points_xld (SelectedSegments, Area, Row, Column)
for E := 0 to |ErrorIndices| - 1 by 1
disp_message (WindowHandle, ErrorIndices[E] + 1, ‘image’, Row[E], Column[E] - TextOffset, ‘white’, ‘red’)
TextOffset := 20 - TextOffset
endfor
endif
endfor
disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘white’, ‘red’)
disp_message (WindowHandle, [1:|ErrorType|] + ': ’ + ErrorType, ‘image’, 500, 500, ‘red’, ‘false’)
if (Index < NumImages)
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop ()
endif
endif
endfor

釋放所有模板句柄

clear_bead_inspection_model (BeadInspectionModel)
clear_deformable_model (ModelID)


圖示處理思路

1、使用符合要求圖像,創(chuàng)建模板

29c849e0-ee50-11ee-a297-92fbcf53809c.png

2、讀入新圖像,矯正圖像(圖像仿射變換)

矯正前圖像:

29e4ebcc-ee50-11ee-a297-92fbcf53809c.png

矯正后圖像:

2a99655c-ee50-11ee-a297-92fbcf53809c.png

3、使用創(chuàng)建的模板檢測(cè)點(diǎn)膠軌跡,得到結(jié)果

2ac4a0a0-ee50-11ee-a297-92fbcf53809c.png


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1292

    瀏覽量

    56747
  • CAD
    CAD
    +關(guān)注

    關(guān)注

    17

    文章

    1092

    瀏覽量

    72504
  • 模板
    +關(guān)注

    關(guān)注

    0

    文章

    108

    瀏覽量

    20566

原文標(biāo)題:一文學(xué)會(huì),膠位偏移、缺膠、斷膠、溢膠檢測(cè)(含源碼)

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求點(diǎn)膠機(jī)對(duì)手機(jī)指紋模塊位置的量,,偏移檢測(cè)方法

    求NI vison檢測(cè)方法 。點(diǎn)膠機(jī)對(duì)手機(jī)指紋模塊位置的量,,偏移檢測(cè)方法求點(diǎn)膠機(jī)對(duì)手機(jī)指
    發(fā)表于 05-03 22:58

    如何解決瞬間點(diǎn)加工時(shí)點(diǎn)膠機(jī)閥漏問(wèn)題?

    內(nèi)空氣或改用不容易氣泡的或先將離心脫泡后再使用。2、瞬間點(diǎn)加工時(shí)出大小不
    發(fā)表于 09-04 09:20

    四元數(shù)數(shù)控:深圳UV點(diǎn)過(guò)程中的現(xiàn)象是什么?

    UV膠水點(diǎn)過(guò)程中,有時(shí)候會(huì)出現(xiàn)的問(wèn)題,對(duì)此應(yīng)該如何處理呢?那么深圳UV點(diǎn)過(guò)程中的
    發(fā)表于 12-27 14:28

    FPC壓合工藝過(guò)程中的現(xiàn)象的產(chǎn)生原因

    氣泡和是柔性電路板壓合工藝流程中種比較普遍的品質(zhì)異?,F(xiàn)象。指的是在壓合流程中,溫度升高而使得COVERLAY中
    的頭像 發(fā)表于 06-10 14:55 ?7924次閱讀

    如何改進(jìn)光纖涂覆機(jī)注管堵塞和和固化時(shí)間長(zhǎng)等問(wèn)題的建議說(shuō)明

    部分進(jìn)口設(shè)備常見(jiàn)三大問(wèn)題:注管容易堵塞;注浪費(fèi),嚴(yán)重;固化時(shí)間長(zhǎng)。直接后果就是維修困難及較長(zhǎng)的維修時(shí)間,影響使用效率。
    發(fā)表于 08-15 08:00 ?2次下載
    如何改進(jìn)光纖涂覆機(jī)注<b class='flag-5'>膠</b>管堵塞和<b class='flag-5'>溢</b><b class='flag-5'>膠</b>和固化時(shí)間長(zhǎng)等問(wèn)題的建議說(shuō)明

    FPC柔性線路板應(yīng)該怎樣去解決

    FPC柔性線路板廠家應(yīng)該嚴(yán)格物料來(lái)料檢驗(yàn),如果在來(lái)料抽檢中,超標(biāo),則聯(lián)系供應(yīng)商退換貨,否則在生產(chǎn)制程中很難控制。
    的頭像 發(fā)表于 03-01 19:48 ?2618次閱讀

    如何解決瞬間點(diǎn)加工時(shí)點(diǎn)膠機(jī)閥漏的問(wèn)題

    如今瞬間點(diǎn)加工應(yīng)用還是很廣泛的,瞬間點(diǎn)加工大多都是采用自動(dòng)點(diǎn)膠機(jī)進(jìn)行點(diǎn),在設(shè)備使用過(guò)程中,如果使用不當(dāng)就會(huì)出現(xiàn)各種各樣的問(wèn)題,那么
    發(fā)表于 07-07 10:43 ?4500次閱讀

    關(guān)于快干點(diǎn)加工工藝的詳細(xì)介紹

    設(shè)備也叫作瞬干點(diǎn)膠機(jī),而在點(diǎn)行業(yè)內(nèi)的叫法是蠕動(dòng)式點(diǎn)膠機(jī),快干點(diǎn)加工工藝屬于電子產(chǎn)品特殊點(diǎn)
    發(fā)表于 07-08 15:30 ?3732次閱讀

    我們?cè)撊绾翁岣唿c(diǎn)代工時(shí)點(diǎn)的效果

    點(diǎn)代工的點(diǎn)效果是與很多因素有關(guān),例如出針頭的直徑大小,針頭與覆產(chǎn)品之間的距離,還有點(diǎn)量的大小以及膠水的性質(zhì),點(diǎn)
    發(fā)表于 10-15 16:29 ?677次閱讀

    AVENTK教你如何處理UV膠水點(diǎn)問(wèn)題

    在UV膠水使用中,點(diǎn)是非常重要的操作過(guò)程之。但是最近有些朋友向AVENTK反映,表示在UV膠水點(diǎn)過(guò)程中,經(jīng)常會(huì)出現(xiàn)的情況,試了幾個(gè)
    的頭像 發(fā)表于 03-27 11:44 ?1269次閱讀

    芯片點(diǎn)GD414硅橡膠對(duì)電阻的影響討論

    問(wèn): 各位老師請(qǐng)教下,板子完成三防涂覆后 部分芯片點(diǎn)GD414硅橡膠,般點(diǎn)芯片周?chē)鷷?huì)有很多元件(電容電阻)般會(huì)有
    的頭像 發(fā)表于 11-27 16:16 ?2040次閱讀

    速度影響光刻的哪些性質(zhì)?

    是光刻中比較重要的步,而旋涂速度是勻中至關(guān)重要的參數(shù),那么我們?cè)趧?b class='flag-5'>膠時(shí),是如何確定勻速度呢?它影響光刻
    的頭像 發(fā)表于 12-15 09:35 ?2035次閱讀
    勻<b class='flag-5'>膠</b>速度影響光刻<b class='flag-5'>膠</b>的哪些性質(zhì)?

    芯片點(diǎn)加工的效果和質(zhì)量的檢測(cè)方法有哪些?

    芯片點(diǎn)加工的效果和質(zhì)量的檢測(cè)方法有哪些?芯片在電子封裝領(lǐng)域用的是比較多的,特別是高度精密集成芯片器件。那么如何判斷點(diǎn)后的效果和質(zhì)量的
    的頭像 發(fā)表于 04-26 16:27 ?582次閱讀
    芯片<b class='flag-5'>膠</b>點(diǎn)<b class='flag-5'>膠</b>加工的效果和質(zhì)量的<b class='flag-5'>檢測(cè)</b>方法有哪些?

    機(jī)器視覺(jué)運(yùn)動(dòng)控制體機(jī)在點(diǎn)檢測(cè)上的應(yīng)用

    想提升點(diǎn)檢測(cè)精度和效率嗎?【點(diǎn)擊了解更多內(nèi)容】
    的頭像 發(fā)表于 05-15 10:18 ?448次閱讀
    機(jī)器視覺(jué)運(yùn)動(dòng)控制<b class='flag-5'>一</b>體機(jī)在點(diǎn)<b class='flag-5'>膠</b><b class='flag-5'>膠</b>路<b class='flag-5'>檢測(cè)</b>上的應(yīng)用

    FPC電路軟板點(diǎn)膠質(zhì)量——、寬測(cè)量視覺(jué)檢測(cè)方案

    根據(jù)目前樣品實(shí)驗(yàn)效果及處理結(jié)果來(lái)看,是可以對(duì)的輪廓提取及處理的,但兩邊的線路會(huì)有少許干擾,特別是在量少的情況下影響更大。如果有其他顏色電路軟板背景,或者量更加少(?。┬枰鄳?yīng)的
    的頭像 發(fā)表于 06-10 18:28 ?954次閱讀
    FPC電路軟板點(diǎn)膠質(zhì)量——<b class='flag-5'>缺</b><b class='flag-5'>膠</b>、<b class='flag-5'>膠</b>寬測(cè)量視覺(jué)<b class='flag-5'>檢測(cè)</b>方案