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

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

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

探究halcon模板匹配干擾邊緣消除辦法

新機(jī)器視覺 ? 來源:CSDN技術(shù)社區(qū) ? 作者:小邢同學(xué) ? 2021-05-29 13:42 ? 次閱讀

最近做了個(gè)項(xiàng)目,遇到一個(gè)問題,就是在創(chuàng)建形狀匹配模板時(shí)候,干擾太多,像麻繩一樣。

使用自定義區(qū)域去消除吧,因?yàn)檩喞L,邊緣干擾距離近,操作起來不方便;

使用CAD圖形創(chuàng)建模板吧,又因?yàn)?a target="_blank">產(chǎn)品隨意性比較強(qiáng),每次換產(chǎn)品都要從新畫模板。

最終決定使用手繪模板的方式解決這個(gè)問題。

halcon手繪形狀匹配模板

手繪形狀匹配模板

為了避免大家產(chǎn)生理解歧義,這里對手繪形狀匹配模板做一個(gè)解釋。

所謂手繪形狀匹配模板,就是在圖像上畫XLD輪廓,將這個(gè)XLD輪廓作為形狀匹配模板。這樣模板就由我們手繪而成,我們想讓模板長什么樣,就把模板畫成什么樣。

主要算子解析

draw_nurbs 繪制平滑曲線

draw_nurbs — 界面交互式繪制平滑曲線

draw_nurbs( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Degree : Rows, Cols, Weights)

我們一般使用時(shí)參數(shù)設(shè)置如下:

draw_nurbs (ContOut1, WindowHandle, ‘true’, ‘true’, ‘true’, ‘true’, 3, Rows, Cols, Weights)

參數(shù)解釋

ContOut(output_object)xld_cont→對象

與手繪輪廓近似的NURBS曲線。

WindowHandle(input_control)窗口→(整數(shù))

窗口句柄。

Rotate(input_control)字符串→(string)

旋轉(zhuǎn)使能,輪廓交互時(shí)可以旋轉(zhuǎn)

默認(rèn)值:“ true”

值列表:“ false”,“ true”

Move (input_control)字符串→(string)

移動(dòng)使能,輪廓交互時(shí)可以使能

默認(rèn)值:“ true”

值列表:“ false”,“ true”

Scale(input_control)字符串→(string)

縮放使能,輪廓交互時(shí)可以縮放

默認(rèn)值:“ true”

值列表:“ false”,“ true”

KeepRatio(input_control)字符串→(string)

縮放時(shí)是否保持比例,是否等比例縮放

默認(rèn)值:“ true”

值列表:“ false”,“ true”

Degree(input_control)整數(shù)→(整數(shù))

NURBS曲線的曲度。合理的值是3到25。

默認(rèn)值:3

建議值:2、3、4、5

限制:Degree》 = 2

Rows(output_control)坐標(biāo).y數(shù)組→(真實(shí))

控件多邊形的行坐標(biāo)。

Cols(output_control)坐標(biāo).x數(shù)組→(實(shí)數(shù))

控件多邊形的列坐標(biāo)。

Weights (output_control)實(shí)數(shù)數(shù)組→(實(shí)數(shù))

權(quán)重向量。

create_shape_model_xld 使用XLD輪廓?jiǎng)?chuàng)建模板

create_shape_model_xld — 使用XLD輪廓?jiǎng)?chuàng)建模板

create_shape_model_xld(Contours : : NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, MinContrast : ModelID)

我們一般使用時(shí)參數(shù)設(shè)置如下:

create_shape_model_xld (Contours , ‘a(chǎn)uto’,-rad(180), rad(360), ‘a(chǎn)uto’, ‘a(chǎn)uto’, ‘ignore_local_polarity’, 10, ModelID)

參數(shù)解釋

Contours (input_object)xld_cont(-array)→對象

輸入將用于創(chuàng)建模型的輪廓。

NumLevels(input_control)整數(shù)→(整數(shù)/字符串)

金字塔等級的最大數(shù)量。

默認(rèn)值:“自動(dòng)”

值列表:1、2、3、4、5、6、7、8、9、10,“自動(dòng)”

AngleStart(input_control)angle.rad→(實(shí)數(shù))

模板的起始角度。

默認(rèn)值:-0.39

建議值:-3.14,-1.57,-0.79,-0.39,-0.20、0.0

AngleExtent(input_control)angle.rad→(實(shí)數(shù))

模板旋轉(zhuǎn)角度的范圍。

默認(rèn)值:0.79

建議值:6.29、3.14、1.57、0.79、0.39

限制:AngleExtent》 = 0

AngleStep(input_control)angle.rad→(真實(shí)/字符串)

旋轉(zhuǎn)角度的步長(分辨率)。

默認(rèn)值:“自動(dòng)”

建議值:“自動(dòng)”,0.0175、0.0349、0.0524、0.0698、0.0873

限制:(AngleStep》 0)&&(AngleStep 《=(pi / 16))

Optimization(input_control)字符串(-array)→(string)

一種優(yōu)化,以及用于生成模型的可選方法。

默認(rèn)值:“自動(dòng)”

值列表:“ auto”,“ no_pregeneration”,“ none”,“ point_reduction_high”,“ point_reduction_low”,“ point_reduction_medium”,“ pregeneration”

Metric(input_control)字符串→(string)

匹配指標(biāo)。

默認(rèn)值:‘ignore_local_polarity’

值列表:‘ignore_color_polarity’,‘ignore_global_polarity’,‘ignore_local_polarity’,‘use_polarity’

MinContrast(input_control)編號→(整數(shù))

搜索圖像中對象的最小對比度。

默認(rèn)值:5

建議值:1、2、3、5、7、10、20、30、40

ModelID(輸出控制)shape_model→(整數(shù))

模板的句柄。

實(shí)例演示與解析

實(shí)例代碼展示與解析

C#

*讀入圖片進(jìn)行顯示

read_image (Image, ‘C:/Users/22967/Desktop/ZL2KB/1.bmp’)

dev_close_window ()

dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)

dev_display (Image)

*手繪模板

draw_nurbs (ContOut1, WindowHandle, ‘true’, ‘true’, ‘true’, ‘true’, 3, Rows, Cols, Weights)

*使用XLD輪廓?jiǎng)?chuàng)建模板

create_shape_model_xld (ContOut1, ‘a(chǎn)uto’,-rad(180), rad(360), ‘a(chǎn)uto’, ‘a(chǎn)uto’, ‘ignore_local_polarity’, 10, ModelID)

*得到模板輪廓

get_shape_model_contours (ModelContours, ModelID, 1)

*查找模板

find_shape_model (Image, ModelID, 0, 0, 0.8, 0, 0.5, ‘least_squares’, 0, 0.1, Row, Column, Angle, Score)

*顯示查找結(jié)果

if(|Row|==0)

dev_clear_window()

dev_display(Image)

set_tposition (WindowHandle, 300, 300)

write_string (WindowHandle, ‘Not Find’)

stop()else

gen_cross_contour_xld (CrossFind, Row, Column, 200, Angle)

endif

運(yùn)行過程與處理展示

讀入圖像

繪制模板

使用繪制的XLD創(chuàng)建模板

查找模板

編輯:jq

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

    關(guān)注

    17

    文章

    1067

    瀏覽量

    72044
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67771

原文標(biāo)題:halcon模板匹配干擾邊緣消除辦法

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

收藏 人收藏

    評論

    相關(guān)推薦

    電路中怎樣消除高頻干擾

    在電子電路設(shè)計(jì)中,高頻干擾是一個(gè)常見的問題,它可能導(dǎo)致電路性能下降、數(shù)據(jù)傳輸錯(cuò)誤甚至設(shè)備損壞。因此,消除或減少高頻干擾是電路設(shè)計(jì)中的一個(gè)重要任務(wù)。 高頻干擾的來源和影響 1.1 高頻
    的頭像 發(fā)表于 08-22 11:05 ?412次閱讀

    消除共模干擾用什么器件

    消除共模干擾是電子電路設(shè)計(jì)中的一個(gè)重要問題。共模干擾是指在信號傳輸過程中,由于外部電磁場的影響,使得信號線上的電壓或電流出現(xiàn)相同的變化,從而影響信號的傳輸質(zhì)量。 一、共模干擾的來源 電
    的頭像 發(fā)表于 08-08 11:28 ?223次閱讀

    差模干擾怎么消除最好

    引發(fā)安全事故。因此,消除差模干擾對于保證電子系統(tǒng)的穩(wěn)定運(yùn)行至關(guān)重要。 一、差模干擾的產(chǎn)生原因 外部電磁干擾 外部電磁干擾是差模
    的頭像 發(fā)表于 07-15 10:27 ?299次閱讀

    Labview與Halcon圖片Image互相轉(zhuǎn)換

    Labview 與Halcon 聯(lián)合開發(fā) 分享一下Labview 與Halcon Image格式相互轉(zhuǎn)換的程序, 整理了一個(gè)VI,LV_to _Halconxl.vi,可以直接調(diào)用,相互轉(zhuǎn)換兩種格式
    發(fā)表于 06-27 23:00

    如何消除伺服電機(jī)的電磁干擾

    伺服電機(jī)在工業(yè)自動(dòng)化、機(jī)器人技術(shù)、航空航天等領(lǐng)域中發(fā)揮著重要作用。然而,伺服電機(jī)在運(yùn)行過程中可能會(huì)產(chǎn)生電磁干擾,影響系統(tǒng)的正常工作。本文將詳細(xì)介紹如何消除伺服電機(jī)的電磁干擾,以保證系統(tǒng)的穩(wěn)定運(yùn)行
    的頭像 發(fā)表于 06-05 11:26 ?1670次閱讀

    LabVIEW模板匹配位置信息導(dǎo)出

    大家好,我在利用ni vision assistant生成的模板匹配界面時(shí),想要將每一個(gè)匹配物體的位置信息導(dǎo)出到word或者Excel,但是他這個(gè)匹配個(gè)數(shù)不確定,怎么樣把
    發(fā)表于 03-11 20:22

    什么叫共模干擾和差模干擾?如何消除通訊線上的干擾

    什么叫共模干擾和差模干擾?如何消除通訊線上的干擾? 共模干擾和差模干擾是在通訊線路中出現(xiàn)的兩種主
    的頭像 發(fā)表于 01-04 16:59 ?1202次閱讀

    如何消除EMC對總線系統(tǒng)的干擾?

    如何消除EMC對總線系統(tǒng)的干擾? EMC(電磁兼容性)是指不同電子設(shè)備在電磁環(huán)境中能夠和諧共存的能力?,F(xiàn)代社會(huì)中,我們被無數(shù)個(gè)電子設(shè)備所包圍,這些設(shè)備會(huì)產(chǎn)生電磁輻射,并且相互之間也會(huì)產(chǎn)生干擾,從而
    的頭像 發(fā)表于 12-11 16:44 ?755次閱讀

    OpenCV邊緣模板匹配算法原理詳解

    ,悲喜交加,充分感受到了理想與現(xiàn)實(shí)的距離,不過沒關(guān)系,這里介紹一種新的模板匹配算法,主要是基于圖像邊緣梯度,它對圖像光照與像素遷移都有很強(qiáng)的抗干擾能力,據(jù)說
    的頭像 發(fā)表于 12-07 10:56 ?1104次閱讀
    OpenCV<b class='flag-5'>邊緣</b><b class='flag-5'>模板</b><b class='flag-5'>匹配</b>算法原理詳解

    AD8232心電工頻干擾如何消除?

    濾波如下圖所示,現(xiàn)在是用軟件來消除工頻干擾的,請問有什么硬件辦法消除這個(gè)干擾么(導(dǎo)聯(lián)包地,然后跟板子上的地相連?),或者推薦款導(dǎo)聯(lián)?
    發(fā)表于 11-23 08:09

    模板匹配算法的改進(jìn)及在自動(dòng)發(fā)牌機(jī)中的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《模板匹配算法的改進(jìn)及在自動(dòng)發(fā)牌機(jī)中的應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 11-08 09:53 ?0次下載
    <b class='flag-5'>模板</b><b class='flag-5'>匹配</b>算法的改進(jìn)及在自動(dòng)發(fā)牌機(jī)中的應(yīng)用

    變頻器維修如何消除信號干擾

    變頻器維修如何消除信號干擾
    的頭像 發(fā)表于 10-17 09:32 ?1038次閱讀

    openMV的demo程序里面有模板匹配的例程嗎?

    openMV要怎么實(shí)現(xiàn)一個(gè)模板匹配
    發(fā)表于 10-12 06:10

    差模干擾是什么及如何消除差模干擾?

    差模干擾(差模信號)是一種在差分信號傳輸系統(tǒng)中出現(xiàn)的干擾模式,這種干擾模式主要是由于電路板上兩條差分信號線的長度、寬度和間距等參數(shù)不一致所導(dǎo)致的。如果不采取有效的措施進(jìn)行抑制和消除,差
    的頭像 發(fā)表于 10-11 13:44 ?2597次閱讀

    openCV的庫自帶了模板匹配算法嗎?

    openCV的庫自帶了模板匹配算法嗎
    發(fā)表于 10-10 06:48