3D直線線輪廓度
運算元功能
計算形位公差-直線線輪廓度
該運算元分為1D和3D模式,1D模式為計算一條直線與理論直線的線輪廓度,3D模式為計算兩條直線與兩條理論直線的線輪廓度。
如下圖所示,計算理論點到實際直線的距離,記為𝑑1, 𝑑2, …, 𝑑n,則線輪廓度為:
2 × 𝑚𝑎𝑥(𝑑1, 𝑑2, …, 𝑑n)
引數介紹
輸入引數

| 引數 | 範圍 | 預設值 | 說明 | 圖示 |
|---|---|---|---|---|
| 輸入影像 | 0-8 | 0 | 影像輸入的IM編號 | ![]() |
計算引數
1D

| 引數 | 範圍 | 預設值 | 說明 | 圖示 |
|---|---|---|---|---|
| 實際直線 | 1D直線 | - | 實際直線上一點和方向向量 | |
| 理論直線 | json檔案 | - | 理論直線取樣點檔案 | |
| 貼合點雲 | true/false | false | 將理論位置點平移到最貼合區域框選點雲的位置,使得測量值最小 | |
| 使用區域引數 | true/false | false | 啟用則以区域作為輸入,不啟用則以输入图像作為輸入 | |
| 區域 | 1D視窗 | 1D視窗 | 手動框選合適的ROI區域可以通过绑定选择已存在的ROI区域 | |
| 理論直線擬合方法 | 最小二乘法/RANSAC | - | 選擇擬合理論直線的方法 | |
| 距離閾值 | 0.0-50.0 | 0.02 | 選擇合適的距離閾值,當噪點多時,調大該引數,當噪點少則調小該引數 | |
| 最大迭代次數 | 100-10000 | 1000 | 設定迭代次數的最大值 |
3D

| 引數 | 範圍 | 預設值 | 說明 | 圖示 |
|---|---|---|---|---|
| 實際直線1 | 3D直線 | - | 實際直線1上一點和方向向量 | |
| 實際直線2 | 3D直線 | - | 實際直線2上一點和方向向量 | |
| 理論直線 | json檔案 | - | 理論直線取樣點檔案若存在两条不同的直线,则放置在同一文件内 | |
| 貼合點雲 | true/false | false | 將理論位置點平移到最貼合區域框選點雲的位置,使得測量值最小 | |
| 區域1 | 2D視窗/2D圓形視窗/2D多邊形視窗/盒子/圓柱盒子/旋轉盒子/點集(僅繫結) | 盒子 | 手動框選合適的ROI區域可以通过绑定选择已存在的ROI区域 | |
| 區域2 | 2D視窗/2D圓形視窗/2D多邊形視窗/盒子/圓柱盒子/旋轉盒子/點集(僅繫結) | 盒子 | 手動框選合適的ROI區域可以通过绑定选择已存在的ROI区域 | |
| 理論直線擬合方法 | 最小二乘法/RANSAC | - | 選擇擬合理論直線的方法 | |
| 距離閾值 | 0.0-50.0 | 0.02 | 選擇合適的距離閾值,當噪點多時,調大該引數,當噪點少則調小該引數 | |
| 最大迭代次數 | 100-10000 | 1000 | 設定迭代次數的最大值 |
結果顯示
1D

| 引數 | 範圍 | 預設值 | 說明 | 圖示 |
|---|---|---|---|---|
| 實際擬合線 | true/false | false | 輸入的實際擬合線,若啟用,則顯示在IM上 | |
| 理論直線 | true/false | false | 輸入的理論直線,若啟用,則顯示在IM上 | |
| 理論直線點到實際直線垂足 | true/false | false | 輸入的理論直線點到實際直線的垂足,若啟用,則顯示在IM上 | |
| 理論直線點到實際直線垂足連線 | true/false | false | 輸入的理論直線點與實際直線的垂足兩點的連線,若啟用,則顯示在IM上 | |
| 線輪廓度 | true/false | false | 輸出的線輪廓度,若啟用,則顯示在IM上 |
3D

| 引數 | 範圍 | 預設值 | 說明 | 圖示 |
|---|---|---|---|---|
| 實際擬合線1 | true/false | false | 輸入的實際擬合線1,若啟用,則顯示在IM上 | |
| 實際擬合線2 | true/false | false | 輸入的實際擬合線2,若啟用,則顯示在IM上 | |
| 理論直線1 | true/false | false | 輸入的理論直線1,若啟用,則顯示在IM上 | |
| 理論直線2 | true/false | false | 輸入的理論直線2,若啟用,則顯示在IM上 | |
| 理論直線點到實際直線垂足 | true/false | false | 顯示兩組點:輸入的理論直線點和理論直線點到實際直線的垂足,若啟用,則顯示在IM上 | |
| 理論直線點到實際直線垂足連線 | true/false | false | 輸入的理論直線點與實際直線的垂足兩點的連線,若啟用,則顯示在IM上 | |
| 線輪廓度 | true/false | false | 輸出的線輪廓度,若啟用,則顯示在IM上 |
輸出引數
1D

| 名稱 | 型別 | 範圍 | 說明 |
|---|---|---|---|
| Result | bool | true/false | true為成功 false為失敗 |
| Warning | bool | true/false | true表示有警告 false表示沒有 |
| Message | string | 輸出成功或錯誤或警告資訊,如果沒有錯誤或警告為空 | |
| Time | float | 運算元執行時間,單位: ms | |
| theoretical_line | line1d | 理論直線 | |
| parallelism | float | 線輪廓度 | |
| result | string | OK/NG | 線輪廓度是否在範圍內 |
3D

| 名稱 | 型別 | 範圍 | 說明 |
|---|---|---|---|
| Result | bool | true/false | true為成功 false為失敗 |
| Warning | bool | true/false | true表示有警告 false表示沒有 |
| Message | string | 輸出成功或錯誤或警告資訊,如果沒有錯誤或警告為空 | |
| Time | float | 運算元執行時間,單位: ms | |
| theoretical_line1 | line3d | 理論直線1 | |
| theoretical_line2 | line3d | 理論直線2 | |
| parallelism | float | 線輪廓度 | |
| result | string | OK/NG | 線輪廓度是否在範圍內 |
提示
更多引數型別詳細說明,請參看型別定義
異常排查
| 序號 | 異常資訊 | 對應引數 | 解決方法 |
|---|---|---|---|
| 1 | 輸入點雲或輪廓點數少於2 | 確認IM是否存在至少兩個有效點,若不滿足該條件,請載入點雲或切換符合要求的IM | |
| 2 | 實際直線{1}的型別為{0},錯誤的輸入型別 | 直線型別,序號 | 1D模式下檢查直線型別是否為1D直線,3D模式下檢查直線型別是否為3D直線 |
| 3 | 引數 {0} 不能為空 | 路徑 | 檢查路徑是否為空 |
| 4 | 檔案 {0} 不存在或無法訪問 | 路徑 | 檢查路徑是否有效 |
| 5 | 輸入的理論直線擬合方法為{0},無效的擬合方法 | 擬合方法 | 檢查直線擬合方法為最小二乘法/RANSAC其中之一 |
| 6 | 輸入的理論直線點云為空 | 檢查理論直線點json檔案是否為空 | |
| 7 | 輸入輪廓度範圍的最小值大於最大值,無效的輪廓度範圍 | 設定輪廓度範圍最小值小於等於最大值 | |
| 8 | 理論直線點雲點數小於2 | 檢查輸入的理論直線點雲點數是否小於2 | |
| 9 | 實際直線{0}方向向量無效 | 序號 | 檢查該直線方向向量是否全為0 |
| 10 | 輸入的模式為{0},無效的模式 | 模式 | 檢查模式是否為1D/3D其中之一 |
| 11 | 輸入的理論線點雲不為輪廓點 | 檢查理論線點雲是否某一行的值全為某個定值 | |
| 12 | 輸入的區域型別是{0},無效區域型別 | 區域型別 | 模式為1D時,檢查區域型別是否為1D視窗;模式為3D時檢查區域型別是否為2D視窗/2D圓形視窗/2D多邊形視窗/盒子/圓柱盒子/旋轉盒子/點集其中之一 |
| 13 | 輸入的多邊形頂點個數小於3,無法形成多邊形 | 新增2d多邊形視窗頂點數,使得頂點數至少為三 | |
| 14 | 輸入區域為空 | 1. 檢查是否框選為空 2. 檢查點集是否為空 |
示例介紹
工程設計
選擇
加载点云工具,載入需要處理的3d點雲圖到IM0;選擇
3D直线线轮廓度工具。
工具使用
選擇需要進行操作的輸入影像,影像序號要與工程中影像所在IM序號一致
不啟用使用區域引數或啟用區域並選擇區域型別為盒子,將盒子移動到待測位置,包圍住待測點雲
使用技巧
1. 通過影像視窗上的ROI控制器來拖動或縮放盒子;
2. 直接在計算引數中修改盒子的起點或終點座標來調整盒子位置和大小
設定引數
在結果顯示欄中勾選想要顯示的內容
點選
测试,檢視影像視窗和引數是否符合預期沒有問題後點擊
保存,在執行列表中執行該運算元,即可在對應的IM檢視執行結果
1D


3D


