做網(wǎng)站 大文件百度怎么創(chuàng)建自己的網(wǎng)站
😊😊😊歡迎來到本博客😊😊😊
🌟🌟🌟 Halcon算子太多,學習查找都沒有系統(tǒng)的學習查找路徑,本專欄主要分享Halcon各類算子含義及用法,有時間會更新具體案例。
😊😊😊 具體食用方式:可以點擊本專欄【Halcon算子快速查找】–>搜索你要查詢的算子名稱;或者點擊Halcon算子匯總博客,即可食用。
🎁🎁🎁支持:如果覺得博主的文章還不錯或者您用得到的話,可以悄悄關注一下博主哈,如果三連收藏支持就更好啦!這就是給予我最大的支持!😙😙😙
文章目錄
- 學習目標
- 學習內(nèi)容
- 1、get_object_model_3d_params()
- Halcon例程
- 【3D Object Model之測量Features】 待更新算子
- 匯總
學習目標
- get_object_model_3d_params()
學習內(nèi)容
算子簡介
函數(shù)名 | 解釋 |
---|---|
get_object_model_3d_params() | 返回三維對象模型的屬性。 |
1、get_object_model_3d_params()
get_object_model_3d_params( : : ObjectModel3D, GenParamName : GenParamValue)
??函數(shù)說明:三維對象模型由一組屬性和元數(shù)據(jù)組成,get_object_model_3d_params
允許訪問給定3d對象模型的屬性和元數(shù)據(jù)。請求的屬性或元數(shù)據(jù)的名稱在通用參數(shù)GenParamName
中傳遞,相應的值在GenParamValue
中返回。
??如果請求的屬性或元數(shù)據(jù)不可用,則會引發(fā)異常。get_object_model_3d_params
支持同時訪問多個三維對象模型和多個屬性。
??請注意:屬性或元數(shù)據(jù)可以具有不同的長度。一些標準屬性具有定義的長度,如后面介紹的屬性描述。其他屬性的長度取決于實際的三維對象模型,可以通過將參數(shù)GenParamName
設置為“num_points
”、“num_triangles
”、“num_polygons
”或“num_lines
”來查詢。因此,要獲得標準屬性“point_coord_x
”的長度,請將GenParamName
設置為“num_points
”。
??函數(shù)參數(shù):
????ObjectModel3D:輸入 3D對象模型句柄;
????GenParamName:輸入為三維對象模型查詢的常規(guī)屬性的名稱;默認: ‘num_points
’;參考: 'blue', 'bounding_box1', 'center', 'diameter_axis_aligned_bounding_box', 'extended_attribute_names', 'extended_attribute_types', 'green', 'has_distance_computation_data', 'has_extended_attribute', 'has_lines', 'has_point_normals', 'has_points', 'has_polygons', 'has_primitive_data', 'has_primitive_rms', 'has_segmentation_data', 'has_shape_based_matching_3d_data', 'has_surface_based_matching_data', 'has_triangles', 'has_xyz_mapping', 'lines', 'mapping_col', 'mapping_row', 'mapping_size', 'neighbor_distance', 'num_extended_attribute', 'num_lines', 'num_neighbors', 'num_neighbors_fast', 'num_points', 'num_polygons', 'num_primitive_parameter_extension', 'num_triangles', 'original_point_indices', 'point_coord_x', 'point_coord_y', 'point_coord_z', 'point_normal_x', 'point_normal_y', 'point_normal_z', 'polygons', 'primitive_parameter', 'primitive_parameter_extension', 'primitive_parameter_pose', 'primitive_pose', 'primitive_rms', 'primitive_type', 'red', 'reference_point', 'score', 'triangles'
;
????GenParamValue:輸出通用參數(shù)值;
屬性名 | 解釋 |
---|---|
'point_coord_x' | 一組3D點的x坐標(長度可以通過num_points 查詢)。該屬性通常從運算符xyz_to_object_model_3d 或read_object_model_3d 獲得。 |
'point_coord_y' | 一組3D點的y坐標(長度可以通過num_points 查詢)。該屬性通常從運算符xyz_to_object_model_3d 或read_object_model_3d 獲得。 |
'point_coord_z' | 一組3D點的z坐標(長度可以通過num_points 查詢)。該屬性通常從運算符xyz_to_object_model_3d 或read_object_model_3d 獲得。 |
'point_normal_x' | 一組3D點的法線x分量(長度可以通過num_points 查詢)。該屬性通常從操作符smooth_object_model_3d 中獲得。 |
'point_normal_y' | 一組3D點的法線y分量(長度可以通過num_points 查詢)。該屬性通常從操作符smooth_object_model_3d 中獲得。 |
'point_normal_z' | 一組3D點的法線z分量(長度可以通過num_points 查詢)。該屬性通常從操作符smooth_object_model_3d 中獲得。 |
'score' | 一組3D點的分數(shù)(長度可以通過num_points 查詢)。該屬性通常從操作符reconstruct_surface_stereo 中獲得。 |
'red' | 一組3D點的red通道(長度可以通過num_points 查詢)。該屬性通常從操作符reconstruct_surface_stereo 中獲得。 |
'green' | 一組3D點的green通道(長度可以通過num_points 查詢)。該屬性通常從操作符reconstruct_surface_stereo 中獲得。 |
'blue' | 一組3D點的blue通道(長度可以通過num_points 查詢)。該屬性通常從操作符reconstruct_surface_stereo 中獲得。 |
'mapping_row' | 3D點集的二維映射的行組件。(長度可以通過num_points 查詢)。原始圖像的高度可通過mapping_size 查詢)。該屬性通常從運算符xyz_to_object_model_3d 中獲得。 |
'mapping_col' | 3D點集的二維映射的列組件。(長度可以通過num_points 查詢)。原始圖像的高度可通過mapping_size 查詢)。該屬性通常從運算符xyz_to_object_model_3d 中獲得。 |
'mapping_size' | 原始圖像的大小。返回一個具有兩個條目寬度和高度的元組。 |
'triangles' | 按以下順序表示三角形的三維點的索引:前三個值(返回值0,1,2)表示第一個三角形。接下來的三個值(返回值3、4、5)表示第二個三角形等。所有索引都對應于3D點的坐標??梢栽L問3D點的坐標,例如,將通用參數(shù)GenParamName 分別設置為值“point_coord_x ”、“point_cord_y ”和“point_corde_z ”。此屬性的長度相當于三角形數(shù)量的三倍,可以使用“num_triangles ”查詢?nèi)切?。該屬性通常從操作?code>triangulate_object_model_3d或read_object_model_3d 獲得。 |
'polygons' | 按以下順序表示多邊形的三維點的索引:第一個返回值包含第一個多邊形的點數(shù)n。以下值(返回值1,2,…,n)表示第一個多邊形的點的索引。下一個值(返回值n+1)包含第二個多邊形的點數(shù)m。以下m個返回值(返回值n+2,n+3,…,n+1+m)表示第二多邊形等的點的索引。所有索引對應于3D點的坐標??梢栽L問3D點的坐標,例如,將通用參數(shù)GenParamName 分別設置為值“point_coord_x ”、“point_cord_y ”和“point_corde_z ”。可以使用“num_polygons ”查詢每個三維對象模型的多邊形數(shù)。該屬性通常從操作符read_object_model_3d 中獲得。 |
'lines' | 按以下順序表示多段線的三維點的索引:第一個返回值包含第一條多段線點數(shù)n。以下值(返回值1,2,…,n)表示第一條多段線的點的索引。下一個值(返回值n+1)包含第二條多段線的點數(shù)m。以下m個值(返回值n+2,n+3,…,n+1+m)表示第二折線等的點的索引。所有索引對應于3D點的坐標??梢栽L問3D點的坐標,例如,將通用參數(shù)GenParamName 分別設置為值“point_coord_x ”、“point_cord_y ”和“point_corde_z ”??梢允褂谩皀um_lines”查詢每個三維對象模型的行數(shù)。該屬性通常從操作符intersect_plane_object_model_3d 中獲得。 |
'diameter_axis_aligned_bounding_box' | 一組3D點的直徑,定義為最小封閉軸平行長方體的對角線長度(請參見參數(shù)’bounding_box1 ’)。此屬性的長度為1。 |
'center' | 該組3D點的中心的3D坐標。這些坐標是最小封閉軸平行長方體的中心(請參見參數(shù)“bounding_box1 ”)。此屬性的長度為3。如果三維對象模型中沒有三維坐標,則以下規(guī)則有效:(1) 如果三維對象模型是圓柱體類型的基本體(請參見 gen_cylinder_object_model_3D ),并且存在擴展,則返回擴展之間的中心點。如果沒有擴展,則返回姿勢的平移參數(shù);(2) 如果三維對象模型是類型為平面的基元(請參考 gen_plane_object_model_3D ),并且存在擴展,則根據(jù)擴展計算平面的重心。如果沒有擴展,則返回姿勢的平移參數(shù);(3) 如果三維對象模型是球體或長方體類型的基本體(請參考 gen_sphere_object_model_3D 或gen_box_object_model_3D ),則返回對象模型的中心點。 |
'original_point_indices' | 不同三維對象模型中三維點的索引(長度可以通過num_points 查詢)。該屬性通常從操作符triangulate_object_model_3d 中獲得。 |
'primitive_type' | 基元類型(例如,從操作符fit_primitives_object_model_3d 獲得)。球體的返回值為“sphere ”。圓柱體的返回值為“cylinder ”。平面的返回值為“plane ”。box的返回值為“box ”。此屬性的長度為1。 |
'primitive_parameter' | 基元的參數(shù)(例如,從操作符fit_primitives_object_model_3d 獲得)。該屬性的長度取決于“primitive_type ”,對于每個三維對象模型,長度在4到10之間。(1) 如果三維對象模型是圓柱體類型的基元(請參見 gen_cylinder_object_model_3D ),則返回值為中心[x_center,y_center,z_center] 的(x-,y-,z-) 坐標、圓柱體主軸[x_axis,y_axis,z_axis] 的(x-,y-,z-) 方向以及圓柱體的半徑[radius] 。順序為[x_center,y_center,z_center,x_axis,y_axis,z_axis,radius] 。(2) 如果三維對象模型是類型為球體的基元(請參見 gen_sphere_object_model_3D ),則返回值為球體的中心[x_center,y_center,z_center] 的(x-,y-,z-) 坐標和半徑[radius] 。順序為[x_center,y_center,z_center,radius] 。(3) 如果3D對象模型是平面類型的基元(參見 gen_plane_object_model_3D ),則返回hessian 法線形式的4個參數(shù),即單位法線(x-,y-,z-) 向量[x,y,z] 和平面與坐標系原點的正交距離(d) 。順序是[x,y,z,d] 。距離(d) 的符號決定了原點所在平面的一側(cè)。(4) 如果三維對象模型是長方體類型的基元( gen_box_object_model_3D ),則返回值為長方體的三維姿勢(平移、旋轉(zhuǎn)、旋轉(zhuǎn)類型)和半邊長(長度1、長度2、長度3)。length1 是長方體沿姿勢的x軸的長度。length2 是長方體沿著姿勢的y軸的長度。length3 是長方體沿著姿勢的z軸的長度。順序為[trans_x,trans_y,trans_z,rot_x,rot_y,rot_z,rot_type,length1,length2,length3] 。有關三維姿勢和相應變換矩陣的詳細信息,請參見操作符create_pose 。 |
'primitive_parameter_pose' | 具有3D姿勢格式的基元的參數(shù)(例如,從操作符fit_primitives_object_model_3D 獲得)。對于所有類型的基本體,返回值都是3D姿勢(平移、旋轉(zhuǎn)、旋轉(zhuǎn)類型)。有關三維姿勢和相應變換矩陣的詳細信息,請參見操作符create_pose 。該屬性的長度取決于“primitive_type ”,對于每個三維對象模型,該長度在7到10之間。(1) 如果三維對象模型是圓柱體類型的基元(請參見 gen_cylinder_object_model_3D ),則還會返回圓柱體的半徑[radius] 。順序為[trans_x,trans_y,trans_z,rot_x,rot_y,rot_z,rot_type,radius] 。(2) 如果三維對象模型是類型為球體的基元(請參見 gen_sphere_object_model_3D ),則還會返回球體的半徑[radius] 。順序為[trans_x,trans_y,trans_z,rot_x,rot_y,rot_z,rot_type,radius] 。(3) 如果三維對象模型是類型為平面的基元(請參見 gen_plane_object_model_3D ),則順序為[trans_x,trans_y,trans_z,rot_x,rot_y,rot_z,rot_type] 。(4) 如果三維對象模型是長方體類型的基元(請參見 gen_box_object_model_3D ),則還會返回長方體的半邊長(length1、length2、length3) 。length1 是長方體沿姿勢的x軸的長度。length2 是長方體沿著姿勢的y軸的長度。length3 是長方體沿著姿勢的z軸的長度。順序為[trans_x,trans_y,trans_z,rot_x,rot_y,rot_z,rot_type,length1,length2,length3] 。 |
'primitive_pose' | 具有3D姿勢格式的基元的參數(shù)(例如,從操作符fit_primitives_object_model_3D 獲得)。對于所有類型的基本體,返回值都是3D姿勢(平移、旋轉(zhuǎn)、旋轉(zhuǎn)類型)。有關三維姿勢和相應變換矩陣的詳細信息,請參見操作符create_pose 。對于每個三維對象模型,該屬性的長度為7。順序為[trans_x,trans_y,trans_z,rot_x,rot_y,rot_z,rot_type] 。 |
'primitive_parameter_extension' | 圓柱體和平面類型的基元的范圍(例如,從操作符fit_primitives_object_model_3d 獲得)。此屬性的長度取決于“primitive_type ”,可以使用“num_primitive_parameter_extension ”進行查詢。(1) 如果三維對象模型是圓柱體類型的基本體(請參見 gen_cylinder_object_model_3D ),則返回值為圓柱體的范圍(MinExtent、MaxExtent) 。它們按[MinExtent,MaxExtent] 的順序返回。MinExtent 表示圓柱體在旋轉(zhuǎn)軸負方向上的長度。MaxExtent 表示圓柱體在旋轉(zhuǎn)軸正方向上的長度。(2) 如果三維對象模型是平面類型的基元(使用 fit_primitives_object_model_3D 創(chuàng)建),則返回值是關于擬合平面的共面點的元組。順序為[點1的x坐標,點2的x坐標、點3的x坐標…、點1的y坐標、點2的y坐標,點3的y坐標…] 。坐標值描述了凸包的支撐點。這是基于擬合平面上有助于擬合的那些點的投影來計算的。如果平面是使用gen_plane_object_model_3d 創(chuàng)建的,則會返回用于創(chuàng)建平面的所有點(XExtent、YExtent) 。 |
'primitive_rms' | 基元的二次殘差(例如,從算子fit_primitives_object_model_3d 獲得)。此屬性的長度為1。 |
'reference_point' | 用于基于形狀的3D匹配的所準備的3D形狀模型的參考點的3D坐標。參考點是最小封閉軸平行長方體的中心(參見參數(shù)“bounding_box1 ”)。此屬性的長度為3。 |
'bounding_box1' | 最小封閉軸平行長方體(min_x,min_y,min_z,max_x,max_y,max_z) 。此屬性的長度為6。 |
'num_points' | 點數(shù)。此屬性的長度為1。 |
'num_triangles' | 三角形的數(shù)量。此屬性的長度為1。 |
'num_polygons' | 多邊形的數(shù)量。此屬性的長度為1。 |
'num_lines' | 線的數(shù)量。此屬性的長度為1。 |
'num_primitive_parameter_extension' | 基元的擴展數(shù)據(jù)的數(shù)量。此屬性的長度為1 |
'has_points' | 三維點是否存在。此屬性的長度為1。 |
'has_point_normals' | 三維點法線是否存在。此屬性的長度為1。 |
'has_triangles' | 三角形是否存在。此屬性的長度為1。 |
'has_polygons' | 多邊形是否存在。此屬性的長度為1。 |
'has_lines' | 線是否存在。此屬性的長度為1。 |
'has_xyz_mapping' | 是否存在3D點到圖像坐標的映射。此屬性的長度為1。 |
'has_shape_based_matching_3d_data' | 是否存在用于基于形狀的3D匹配的形狀模型。此屬性的長度為1。 |
'has_distance_computation_data' | 是否存在用于三維距離計算的預計算數(shù)據(jù)結(jié)構(gòu)。此屬性的長度為1。數(shù)據(jù)結(jié)構(gòu)可以使用prepare_object_model_3d 創(chuàng)建,目的是“distance_computerion ”。它由操作符distance_object_model_3d 使用。 |
'has_surface_based_matching_data' | 是否存在用于基于曲面的匹配的數(shù)據(jù)。此屬性的長度為1。 |
'has_segmentation_data' | 是否存在用于3D分割的數(shù)據(jù)。此屬性的長度為1。 |
'has_primitive_data' | 原始數(shù)據(jù)是否存在。此屬性的長度為1。 |
'has_primitive_rms' | 基元的二次殘差是否存在。此屬性的長度為1。 |
'neighbor_distance' | —— |
'neighbor_distance N' | 對于每個點,第N個最近點的距離。 N必須是一個正整數(shù),默認情況下為25。對于每個點,所有其他點都會根據(jù)它們的距離進行排序,并返回第N個點的距離。 |
'num_neighbors X' | 對于每個點,距離最多為X的鄰居的數(shù)量。 |
'num_neighbors_fast X' | 對于每個點,距離最多為X的鄰居的近似數(shù)量。使用體素來近似距離,與“num_neighbors ”相比,處理速度更快。 |
??擴展屬性是指可以通過特殊運算符(例如distance_object_model_3d
)從標準屬性派生的屬性,或用戶定義的屬性。操作員set_object_model_3d_attrib可以創(chuàng)建用戶定義的屬性。可以訪問以下擴展屬性和元數(shù)據(jù):
屬性名 | 解釋 |
---|---|
'&attribute_name' | 擴展屬性的用戶定義名稱。請注意,此名稱必須以“&” 開頭,例如“&my_attrib” 。請求的擴展屬性的數(shù)據(jù)在GenParamValue 中返回。返回數(shù)據(jù)的順序與在GenParamName 中指定的屬性名稱的順序相同。 |
'extended_attribute_names' | 所有擴展屬性的名稱。對于每個擴展屬性名稱,都會返回一個值。 |
'extended_attribute_types' | 所有擴展屬性的類型。對于每個擴展屬性類型,都會返回一個值,從而將這些值排序為擴展屬性名稱的輸出。 |
'has_extended_attribute' | 至少存在一個擴展屬性。對于每個三維對象模型,都會返回一個值。 |
'num_extended_attribute' | 擴展屬性的數(shù)量。對于每個三維對象模型,都會返回一個值。 |
Halcon例程
vector_to_hom_mat3d.hdev 從點對應關系近似不同類型的仿射三維變換
triangulate_object_model_3d_xyz_mapping.hdev 對三維對象模型進行三角化(二維映射)
simplify_object_model_3d.hdev 簡化復雜的三維對象模型
select_points_object_model_3d_by_density.hdev 基于點密度刪除三維對象模型中有噪聲的部分
select_points_object_model_3d.hdev 使用閾值刪除三維對象模型的部分
select_object_model_3d.hdev 根據(jù)體積和直徑選擇三維對象模型
segment_object_model_3d.hdev 將2.5D數(shù)據(jù)分段為圓柱形或球形部分
scene_flow_globe.hdev 計算兩個立體圖像對之間的3D場景流,以恢復對象在3D中的運動
sample_object_model_3d.hdev 使用采樣減少三維對象模型中的點數(shù)
reduce_object_model_3d_to_visible_parts.hdev 刪除三維對象模型中從定義的攝影機姿勢看不到的部分
reconstruct_3d_object_model_for_matching.hdev 通過三維配準從多個視圖重建用于匹配的三維對象模型
intersect_plane_object_model_3d.hdev 計算三維對象模型和平面之間的交點
interactive_intersection.hdev 交互式計算三維對象模型和平面之間的交點
inspect_3d_surface_intersections.hdev 通過檢查三維對象的平面交點來檢查安裝凸舌的角度和尺寸
genicamtl_lmi_gocator_objectmodel3d.hdev 使用GenICamTL接口從LMI Technologies Gocator傳感器數(shù)據(jù)生成3D對象模型
fuse_object_model_3d_workflow.hdev 設置多個三維對象模型的三維融合參數(shù)
fit_primitives_object_model_3d.hdev 將圓柱體裝配到2.5D數(shù)據(jù)中
find_surface_model_with_edges.hdev 使用邊緣支持的基于表面的匹配在3D場景中查找紙箱
find_deformable_surface_model.hdev 使用基于可變形曲面的匹配在三維場景中查找對象
disp_object_model_3d.hdev 顯示三維對象模型
check_for_holes_sheet_of_light.hdev 使用校準的光設置表來驗證孔的存在和正確性
3d_matching_clamps.hdev 使用三維DXF模型識別圖像中的三維對象
【3D Object Model之測量Features】 待更新算子
- area_object_model_3d()
- distance_object_model_3d()
- get_object_model_3d_params()
- max_diameter_object_model_3d()
- moments_object_model_3d()
- select_object_model_3d()
- smallest_bounding_box_object_model_3d()
- smallest_sphere_object_model_3d()
- volume_object_model_3d_relative_to_plane()
匯總
??本專欄博客匯總:Halcon算子匯總
🚶🚶🚶今天的文章就到這里啦~
喜歡的話,點贊👍、收藏??、關注💟哦 ~