用Halcon開發(fā)檢測算法一般有兩種方法:
根據(jù)直接調(diào)用Halcon在對應(yīng)語言平臺(tái)下的算子接口
用Halcon自帶的腳本語言開發(fā)算法然后轉(zhuǎn)成C#類
第一種自由度比較高,代碼看起來也比較簡潔易懂,但上手比較困難。第二種更簡單,但生成的類很難看,而且與程序集成的時(shí)候需要做一些改動(dòng)。兩種方法并不是絕對對立的,一般會(huì)先用Halcon驗(yàn)證算法,然后參考導(dǎo)出的C#類實(shí)現(xiàn)自己的檢測算法。
抓邊算法
2D測量模型
簡述一下2D 測量的使用步驟:
創(chuàng)建測量模型并指定圖像大。菏紫缺仨毷褂胏reate_metrology_model創(chuàng)建測量模型,然后使用set_metrology_model_image_size指定測量結(jié)果所在的圖像的大小。
大林上位機(jī)機(jī)器視覺,_常州電工培訓(xùn)_常州PLC培訓(xùn)_常州機(jī)器視覺培訓(xùn)_常州上位機(jī)培訓(xùn)_常州工業(yè)機(jī)器人培訓(xùn),最適合電工及plc編程人員學(xué)習(xí)的上位機(jī)機(jī)器視覺課程 大林老師:15861139266(微信同號)
提供近似值:將測量對象添加到測量模型中,每個(gè)測量對象由圖像中相應(yīng)對象的近似形狀參數(shù)和控制測量的參數(shù)組成,控制測量的參數(shù)包括例如指定測量區(qū)域的尺寸和分布的參數(shù),測量對象有以下幾種:
圓:add_metrology_object_circle_measure
橢圓:add_metrology_object_ellipse_measure
矩形:add_metrology_object_rectangle2_measure
線:add_metrology_object_line_measure
使用一個(gè)運(yùn)算符創(chuàng)建不同形狀:add_metrology_object_generic
要直觀檢查定義的度量對象,可以使用運(yùn)算符get_metrology_object_model_contour訪問其XLD輪廓。要直觀檢查創(chuàng)建的測量區(qū)域,可以使用運(yùn)算符get_metrology_object_measures訪問其XLD輪廓。
修改模型參數(shù):如果已執(zhí)行相機(jī)校準(zhǔn),則可以使用set_metrology_model_param,沒有就忽略(本示例沒有使用)。
修改對象參數(shù):當(dāng)將測量對象添加到測量模型時(shí),可以設(shè)置許多參數(shù),之后還可以使用運(yùn)算符set_metrology_object_param修改其中的一些(本示例是在添加時(shí)設(shè)置的參數(shù),所以沒有此步驟)。
調(diào)整測量模型:在執(zhí)行下一次測量之前平移和旋轉(zhuǎn)測量模型,可以使用操作員align_metrology_model。通常使用基于形狀的匹配來獲得對準(zhǔn)參數(shù),相當(dāng)于測量前的位置就糾偏(本示例比較簡單沒有此步驟)。
應(yīng)用測量:使用apply_metrology_model執(zhí)行測量過程。
訪問結(jié)果:測量后,可以使用get_metrology_object_result訪問結(jié)果,也可以使用get_metrology_object_measures獲取定位邊的行坐標(biāo)和列坐標(biāo)再進(jìn)一步處理(本示例使用前者)。
代碼實(shí)現(xiàn)
抓變算法的C#代碼如下:
private void button_FindEdge_Click(object sender, EventArgs e)
{
//創(chuàng)建測量對象
HMetrologyModel hMetrologyModely = new HMetrologyModel();
//設(shè)置圖片大小
image.GetImageSize(out int width, out int height);
hMetrologyModely.SetMetrologyModelImageSize(width, height);
//添加直線測量
double measureLength1= 30, measureLength2=30, measureSigma=1, measureThreshold=30;
HTuple genParamName = new HTuple(), genParamValue = new HTuple();
hMetrologyModely.AddMetrologyObjectLineMeasure(line.Row1, line.Column1,line.Row2, line.Column2, measureLength1, measureLength2, measureSigma, measureThreshold, genParamName, genParamValue);
//執(zhí)行并獲取結(jié)果
hMetrologyModely.ApplyMetrologyModel(image);
//獲取測量區(qū)域
HTuple mRow = new HTuple(), mCol = new HTuple();
HXLDCont mContours = hMetrologyModely.GetMetrologyObjectMeasures("all", "all", out mRow, out mCol); //檢測區(qū)域輪廓
HXLDCont mmContours = hMetrologyModely.GetMetrologyObjectModelContour("all", 1); //測量對象輪廓
//參數(shù)順序 ["row_begin", "column_begin", "row_end", "column_end"]
HTuple lineRet =hMetrologyModely.GetMetrologyObjectResult("all", "all", "result_type", "all_param");
double[] retAry = lineRet.DArr;
//打印結(jié)果
hwindow.SetLineWidth(2);
hwindow.SetColor("green");
hwindow.DispLine(retAry, retAry, retAry, retAry);
hwindow.SetColor("blue");
hwindow.DispXld(mContours);
hwindow.SetColor("yellow");
hwindow.DispXld(mmContours);
//清空測量對象
hMetrologyModely.ClearMetrologyModel();
//清理對象
hMetrologyModely?.Dispose();
genParamName?.Dispose();
genParamValue?.Dispose();
mRow.Dispose();
mCol.Dispose();
mContours.Dispose();
mmContours.Dispose();
}
Halcon的代碼如下:
大林上位機(jī)機(jī)器視覺,_常州電工培訓(xùn)_常州PLC培訓(xùn)_常州機(jī)器視覺培訓(xùn)_常州上位機(jī)培訓(xùn)_常州工業(yè)機(jī)器人培訓(xùn),最適合電工及plc編程人員學(xué)習(xí)的上位機(jī)機(jī)器視覺課程 大林老師:15861139266(微信同號)
*讀取圖片
read_image (Image, 'D:/test.bmp')
dev_get_window (WindowHandle)
*畫線
Row1:=1218.79
Column1:=1002.95
Row2:=1242.07
Column2:=2786.18
*draw_line (WindowHandle, Row1, Column1, Row2, Column2)
*gen_region_line (RegionLines, Row1, Column1, Row2, Column2)
*創(chuàng)建測量幾何形狀所需的數(shù)據(jù)結(jié)構(gòu)
create_metrology_model (MetrologyHandle)
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
add_metrology_object_line_measure (MetrologyHandle, Row1, Column1, Row2, Column2, 100, 50, 1, 30, [], [], Index)
apply_metrology_model (Image, MetrologyHandle)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type','all_param', Parameter)
get_metrology_object_measures(Contours, MetrologyHandle, 'all', 'all', Row, Column)
get_metrology_object_model_contour (Contour, MetrologyHandle, 0, 1.5)
*清空測量對象,否則會(huì)導(dǎo)致內(nèi)存泄露
clear_metrology_model (MetrologyHandle)
*可視化
dev_clear_window ()
dev_display(Image)
dev_set_color('green')
dev_set_line_width(1)
disp_line (WindowHandle, Parameter, Parameter, Parameter, Parameter)
dev_display (Contours)
dev_display (Contour)
使用方法
直接在界面上點(diǎn)擊“打開圖片”->“畫線ROI”(默認(rèn)位置我都調(diào)好了,你也可以自己調(diào)整大小、位置)->“抓邊”,過程如下:
一、課程目標(biāo)
本公司本著為工控事業(yè)培育和輸出從電工基礎(chǔ)到機(jī)器視覺的人才理念,著力于讓小白成為工控業(yè)專家為目標(biāo)。
大林上位機(jī)視覺軟件培訓(xùn)專家特開設(shè)從電工基礎(chǔ)、PLC、運(yùn)動(dòng)控制、上位機(jī)、工業(yè)機(jī)器人、機(jī)器視覺培訓(xùn)課程,為實(shí)現(xiàn)工業(yè)4.0事業(yè)而不懈努力。
機(jī)構(gòu)課程全程真實(shí)教學(xué)、實(shí)干為主,不裝逼,不扯淡,只嘮干貨,能做項(xiàng)目!
二、老師介紹
大林老師
是專業(yè)從事上位機(jī)視覺軟件的開發(fā)與培訓(xùn),多年從事上位機(jī)機(jī)器視覺相關(guān)項(xiàng)目開發(fā),對電氣人員學(xué)習(xí)C#開發(fā)視覺軟件有獨(dú)到的見解,即使您是零基礎(chǔ)或只要從事過電氣自動(dòng)化相關(guān)工作的學(xué)員都能夠輕松快速學(xué)會(huì)。
三、校區(qū)介紹
大林上位機(jī)機(jī)器視覺培訓(xùn)機(jī)構(gòu),分為兩個(gè)校區(qū),蘇州校區(qū)(蘇州木瀆),常州校區(qū)(常州新北)
四、硬件設(shè)施
校區(qū)提供2000多平方的實(shí)訓(xùn)基地,完美的設(shè)備硬件配套,可以做到邊學(xué)習(xí)邊操作,鑒于本機(jī)構(gòu)隸屬于某自動(dòng)化公司,學(xué)員可以配合邊學(xué)習(xí)邊配合公司開發(fā)人員完成項(xiàng)目,這樣學(xué)習(xí)起來事半功倍
五、畢業(yè)服務(wù)
學(xué)業(yè)完成后本公司可以擇優(yōu)錄取,在我們自動(dòng)化公司的實(shí)習(xí),解決您的后顧之憂
六、課程對象
1.零基礎(chǔ)無任何相關(guān)知識(shí)
2.有電氣及PLC編程基礎(chǔ)的更容易入手
3.需要系統(tǒng)性提升整體能力
4.跨行業(yè)轉(zhuǎn)型
5.想擁有一份體面高收入
6.對自己前途迷茫
7.學(xué)歷低英語不好
七、課程特色
為您量身提供零基礎(chǔ)快速成為上位機(jī)及機(jī)器視覺軟件開發(fā)專家的學(xué)習(xí)方案
承接企事業(yè)單位定制個(gè)性化學(xué)員集體培訓(xùn)。
八、課程內(nèi)容
小白亦可通過學(xué)習(xí)成為工業(yè)軟件開發(fā)專家,從電氣圖,到梯形圖,到高級語言SCL,再到C#,突破高級語言難的瓶頸,輕松掌握。
從零開始,從電氣基本元件入手,跟隨課程遞進(jìn)學(xué)習(xí),PLC,工業(yè)機(jī)器人,數(shù)據(jù)庫,運(yùn)動(dòng)控制器,上位機(jī),機(jī)器視覺,統(tǒng)統(tǒng)一網(wǎng)打盡。
歡迎親臨現(xiàn)場咨詢,老師私人定制課程 ,學(xué)習(xí)更清晰!
九、授課方式
1、線下現(xiàn)場授課更直觀,知識(shí)點(diǎn)更易吸收,現(xiàn)場互動(dòng)更易理解和運(yùn)用。
1,贈(zèng)送老師錄制課程隨時(shí)隨地輕松學(xué)習(xí)
2,贈(zèng)送配套書籍不限環(huán)境隨意學(xué)習(xí)
3,課間和課后答疑知識(shí)掌握更牢固
4,現(xiàn)場設(shè)備隨意使用,人機(jī)結(jié)合熟練運(yùn)用,加深知識(shí)理解。
5,老師指導(dǎo)完善簡歷,輕松上崗。
2、線上視頻錄播課程-整套
1,贈(zèng)送配套書籍不限環(huán)境隨意學(xué)習(xí)
2,售后答疑輕松解答
3,福利:線下報(bào)名課程原價(jià)抵扣
3、 線上視頻課程+現(xiàn)場設(shè)備實(shí)操
1,贈(zèng)送配套書籍不限環(huán)境隨意學(xué)習(xí)
2,售后答疑輕松解答
3,現(xiàn)場和課后答疑知識(shí)掌握更牢固
4,現(xiàn)場設(shè)備隨意使用,人機(jī)結(jié)合熟練運(yùn)用,加深知識(shí)理解
5,福利:線下報(bào)名課程原價(jià)抵扣