最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【Halcon學(xué)習(xí)筆記】08.圖像測量(2D)

2022-07-06 14:07 作者:Ryou2  | 我要投稿

1.概述

????????Halcon中的2D Metrology模塊提供了亞像素級別的卡尺測量功能,可以測量的幾何形狀包括直線、圓、橢圓、矩形。

????????2D測量模型使用起來相對方便,如要測圓的半徑,只要設(shè)置圓心坐標(biāo)和模板半徑,之后就能在模板半徑內(nèi)設(shè)置個測量范圍,在測量范圍內(nèi)的邊緣會被提取出來,從而自動測出圓的實際半徑。


2. 相關(guān)概念

2.1 計量模型(metrology model)

? ? ? ? ? 包含所有計量對象、測量所需的所有信息以及測量結(jié)果的數(shù)據(jù)結(jié)構(gòu)。

2.2 計量對象(metrology object)

????????用2D計量測量對象的數(shù)據(jù)結(jié)構(gòu)。計量對象由特定的幾何形狀表示,形狀參數(shù)大致為已知。此外,它包含控制測量的參數(shù),例如指定測量區(qū)域的尺寸和分布的參數(shù)。

2.3 測量區(qū)域(measure regions)

????????排列垂直于近似對象邊界的矩形區(qū)域。在這些區(qū)域中,提取用于獲取計量對象精確形狀參數(shù)的邊緣。


3. 相關(guān)算子

3.1 創(chuàng)建

????????create_metrology_model(MetrologyHandle)

????????MetrologyHandle:測量模型句柄

3.2 添加

3.2.1添加直線測量對象到模型? ????????????

????????add_metrology_object_line_measure()

????????MetrologyHandle:測量模型句柄

????????RowBegin:測量區(qū)域行坐標(biāo)起點

????????ColumnBegin:測量區(qū)域列坐標(biāo)起點

????????RowEnd:測量區(qū)域行坐標(biāo)終點

????????ColumnEnd:測量區(qū)域列坐標(biāo)終點

????????MeasureLength1:垂直于邊界的測量區(qū)域的一半長度

????????MeasureLength2:相切于邊界的測量區(qū)域的一半長度

????????MeasureSigma:用于平滑的高斯函數(shù)的 Sigma

????????MeasureThreshold:最小邊緣幅度閾值

????????GenParamName:通用參數(shù)的名稱

????????GenParamValue:通用參數(shù)值

????????Index:所創(chuàng)建的計量對象的索引

3.2.2 添加圓型測量對象到模型

????????add_metrology_object_circle_measure()

?????????MetrologyHandle:測量模型句柄

????????Row:測量區(qū)域的圓心行坐標(biāo)

????????Column:測量區(qū)域的圓行列坐標(biāo)

????????Radius:測量區(qū)域的半徑

? ? ? ? MeasureLength1:垂直于邊界的測量區(qū)域的一半長度

????????MeasureLength2:相切于邊界的測量區(qū)域的一半長度

? ? ? ? MeasureSigma:用于平滑的高斯函數(shù)的 Sigma

????????MeasureThreshold:最小邊緣幅度閾值

????????GenParamName:通用參數(shù)的名稱

????????GenParamValue:通用參數(shù)值

????????Index:所創(chuàng)建的計量對象的索引

3.2.3 添加橢圓測量對象到模型

????????add_metrology_object_ellipse_measure()

3.2.3 添加矩形測量對象到模型

????????add_metrology_object_rectangle2_measure()

3.3?設(shè)置

3.3.1 設(shè)置測量對象參數(shù)

????????set_metrology_object_param()

????????MetrologyHandle:測量模型句柄

????????Index指定計量對象,為all時所有計量對象的參數(shù)都被設(shè)置('all')

? ? ? ? GenParamName:通用參數(shù)的名稱

????????????????'measure_length1':區(qū)域,垂直于邊界的測量區(qū)域的一半長度

? ? ????????????'measure_length2':區(qū)域,相切于邊界的測量區(qū)域的一半長度

????????????????'measure_distance':區(qū)域,兩個測量區(qū)域中心之間的距離

????????????????'num_measures':區(qū)域,測量區(qū)域數(shù)

????????????????'measure_sigma':測量,用于平滑的高斯函數(shù)的 Sigma

????????????????'measure_threshold':測量,最小邊緣幅度閾值

????????????????'measure_select':測量,邊緣端點的選擇('last'、'first')

????????????????'measure_transition':測量,方向('all'、'negative'、?'positive')

????????????????'measure_interpolation':測量,插值類型

????????????????'min_score':擬合,最小分數(shù)

????????????????'num_instances':擬合,成功擬合實例的最大數(shù)量

????????????????'distance_threshold':擬合,距離閾值

????????GenParamValue:通用參數(shù)值

3.3.2 設(shè)置對整個計量模型有效的參數(shù)

????????set_metrology_model_param()

????????MetrologyHandle:測量模型句柄

????????GenParamName:通用參數(shù)的名稱

????????????????'camera_param':是否使用相機內(nèi)部參數(shù)

????????????????'plane_pose':是否相機三維姿態(tài)

????????????????'reference_system':根據(jù)圖像坐標(biāo)系的平移(行、列)和旋轉(zhuǎn)角度(角度),定義一種新的參考系統(tǒng)

????????????????'scale':期望單位與原始單位的比率

? ? ? ? GenParamValue:通用參數(shù)值

3.3.3 對齊測量模型位置(校準(zhǔn))

????????align_metrology_model()

????????MetrologyHandle:測量模型句柄
? ? ????Row:對齊測量模型的行坐標(biāo)
? ? ????Column:對齊測量模型的列坐標(biāo)
????????Angle:對齊測量模型的旋轉(zhuǎn)角度

3.4 執(zhí)行

????????apply_metrology_model()

????????Image:輸入的測量圖像
????????MetrologyHandle:測量模型句柄

3.5?獲取

3.5.1?獲取計量模型的計量對象的測量區(qū)域和邊緣位置結(jié)果

????????get_metrology_object_measures()

????????Contours:測量區(qū)域的矩形 XLD 輪廓
????????MetrologyHandle:測量模型句柄
????????Index:指定計量對象,為all時所有計量對象的參數(shù)都被設(shè)置('all')
????????Transition:選擇亮/暗或暗/亮邊緣('all'、'negative'、?'positive')
????????Row:測量邊緣的行坐標(biāo)集
????????Column:測量邊緣的列坐標(biāo)集

3.5.2?獲取計量模型的計量對象的結(jié)果輪廓

????????get_metrology_object_result_contour()

????????Contour:給定計量對象的結(jié)果輪廓。

????????MetrologyHandle:測量模型句柄

????????Index:指定計量對象,為all時所有計量對象的參數(shù)都被設(shè)置('all')

????????Instance:計量對象的實例('all')

????????Resolution:相鄰輪廓點之間的距離

3.5.3 獲取計量模型的計量對象的結(jié)果

????????get_metrology_object_result()

? ? ? ? Contour:給定計量對象的結(jié)果輪廓。

????????MetrologyHandle:測量模型句柄

????????Index:指定計量對象,為all時所有計量對象的參數(shù)都被設(shè)置('all')

????????GenParamName:通常設(shè)置為’result_type’,表示用GenParamValue返回方式和結(jié)果

????????GenParamValue:通常設(shè)置為’all_param’,表示將所有測量參數(shù)到Parameter

? ? ????Parameter:返回的參數(shù)值

????????????????對于直線:返回?[‘row_begin’,‘column_begin’,‘row_end’,‘column_end’]

????????????????對于圓型返回[‘row’,‘column’,‘radius’]或 [‘x’,‘y’,‘radius’]

????????????????對于橢圓:返回[‘row’,‘column’,‘phi’,‘radius1’,‘radius2’]

????????????????對于矩形:返回[‘row’,‘column’,‘phi’,‘length1’,‘length2’]

3.6 釋放

????????clear_metrology_model()

????????MetrologyHandle:測量模型句柄


4.模型測量在Halcon中的應(yīng)用步驟

4.1 應(yīng)用步驟

4.2 例程要求????

????????測量矩形標(biāo)簽的像素長度。

4.3 實現(xiàn)步驟

1)找到模板圖片的區(qū)域中心(跟隨對齊用)

? ? ? ? var_threshold (Image, Region, 100, 100, 0.5, 5, 'dark')

? ? ? ? fill_up (Region, RegionFillUp)

? ? ? ? connection (RegionFillUp, ConnectedRegions)

? ? ? ? select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)?

? ? ? ? smallest_rectangle2 (SelectedRegions, RowM, ColumnM, PhiM, Length1, Length2)

? ? ? ? disp_cross (WindowHandle, RowM, ColumnM, 100, PhiM)

2)畫出模板圖片的測量區(qū)域

? ? ? ? recR:=1830

? ? ? ? recC:=2220

? ? ? ? recA:=0

? ? ? ? recL1:=960

? ? ? ? recL2:=70

? ? ? ? gen_rectangle2 (rec, recR, recC, rad(recA), recL1, recL2)

3)創(chuàng)建測量模型句柄

? ? ? ? create_metrology_model (MetrologyHandle)

4)添加直線測量模型

? ? ? ? add_metrology_object_line_measure (MetrologyHandle, recR, recC-recL1,recR, recC+recL1, recL1/4, recL2/2, 1, 20, [], [], Index)

5)設(shè)置測量對象參數(shù)

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'measure_length1', 50)?

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'measure_length2', 10)

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'measure_threshold', 20)

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'measure_distance', 20)

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'min_score',0.6)

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'measure_sigma', 1)

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'measure_transition', 'all')

? ? ? ? set_metrology_object_param (MetrologyHandle, 'all', 'measure_select', 'all')

? ? ? ? set_metrology_model_param (MetrologyHandle, 'reference_system', [RowM, ColumnM,PhiM])?

6)找到運行圖片的區(qū)域中心(跟隨對齊用)

? ? ? ? var_threshold (Image, Region, 100, 100, 0.5, 5, 'dark')

? ? ? ? fill_up (Region, RegionFillUp)

? ? ? ? connection (RegionFillUp, ConnectedRegions)

? ? ? ? select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)?

? ? ? ? smallest_rectangle2 (SelectedRegions, Row, Column, Phi, Length1, Length2)

7)跟隨對齊測量模型

(理解:上面的測量卡尺已經(jīng)創(chuàng)建好了,目前的問題在于將卡尺放在哪個位置。設(shè)置一個模板的跟隨點,就是說模板圖片卡尺在RowM, ColumnM的位置,現(xiàn)在同樣找到測試圖片的Row, Column的位置,就有對應(yīng)關(guān)系可以對齊卡尺,原理同仿射變換)

? ? ? ? align_metrology_model (MetrologyHandle, Row, Column,Phi)

8)執(zhí)行測量

? ? ? ? apply_metrology_model (Image, MetrologyHandle)

9)獲取測量數(shù)據(jù)

? ? ? ? get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)

????????get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row2, Column2)

????????get_metrology_object_result_contour (Contour1, MetrologyHandle, 'all', 'all', 1.5)

10)計算測量數(shù)據(jù)

? ? ? ? ? ? distance_pp (Parameter[0], Parameter[1], Parameter[2], Parameter[3], Distance)

? ? ? ? ? ? disp_message (WindowHandle, 'Lenght:'+Distance, 'window', 0, 10, 'green', 'false')

11)釋放模型

????????? ? clear_metrology_model (MetrologyHandle)


by Ryou2-

【Halcon學(xué)習(xí)筆記】08.圖像測量(2D)的評論 (共 條)

分享到微博請遵守國家法律
隆子县| 西乡县| 沙坪坝区| 古丈县| 肃宁县| 南召县| 新和县| 楚雄市| 巴塘县| 华坪县| 宜君县| 梁河县| 榆林市| 黄冈市| 景泰县| 蓝田县| 葵青区| 宾川县| 蒙城县| 察雅县| 长春市| 北票市| 中西区| 井冈山市| 筠连县| 崇阳县| 同心县| 登封市| 永春县| 西贡区| 香港 | 太白县| 宁陕县| 莱芜市| 西乌| 汝城县| 中牟县| 雷州市| 乐陵市| 景洪市| 钦州市|