目錄
- create_metrology_model(算子)
- 描述
- 二維計量的基本原理
- 創建計量模型數據結構
- 提供近似值
- 修改模型參數
- 修改對象參數
- 對齊計量模型
- 應用測量
- 訪問結果
- 清理記憶
- 注意
- 參數
create_metrology_model(算子)
create_metrology_model - 創建測量幾何形狀所需的數據結構。
create_metrology_model(::: MetrologyHandle)
描述
create_metrology_model創建計量模型,即通過2D計量測量具有特定幾何形狀(計量對象)的對象所需的數據結構,并將其返回到手柄MetrologyHandle中。
二維計量的基本原理
通常,對于2D度量,必須提供要測量的對象的位置,方向和幾何形狀的近似值。在顯示對象的圖像內,這些近似對象的邊界用于定位對象的真實邊緣以適應幾何形狀的參數,使得它們最佳地適合圖像數據。測量結果是優化的參數。計量模型用于存儲所有必要的信息,例如計量對象的位置和幾何形狀的初始參數,控制測量的參數以及測量結果。可以通過2D計量測量的幾何形狀包括圓形,橢圓形,矩形和線條。
圖像中對象的邊緣位于所謂的測量區域內。這些是矩形區域,其垂直于近似物體的邊界布置,使得它們的中心位于邊界上。調整測量區域的尺寸和分布的參數與每個測量對象的近似形狀參數一起指定。
當應用測量時,使用RANSAC算法確定所有測量區域內的邊緣位置并使其適合幾何形狀。
計量模型包含7個顯示為藍色輪廓的計量對象。使用位于測量區域(灰色矩形)內的邊緣(青色十字)用于每個計量對象,擬合幾何形狀(綠色輪廓)并測量它們的參數。如針對圓形的計量對象所示,可以找到一個以上的計量對象實例。
在下文中,描述了進行這種測量所需的各個步驟:
創建計量模型數據結構
首先,使用create_metrology_model創建計量模型數據結構,create_metrology_model用作一個或多個計量對象的容器。之后,應使用set_metrology_model_image_size指定將在其中執行測量的圖像的圖像大小,以進行有效測量。
提供近似值
然后,計量對象被添加到計量模型中。每個計量對象包括圖像中相應對象的近似形狀參數以及控制測量的參數。控制測量的參數包括例如指定測量區域的半長度和它們之間的距離的參數。此外,可以為每個計量對象調整幾個通用參數。對于類型為circle的計量對象,使用運算符add_metrology_object_circle_measure指定計量對象,對于橢圓類型的計量對象使用add_metrology_object_ellipse_measure,對于類型為矩形的計量對象使用add_metrology_object_rectangle2_measure,對于類型行的計量對象使用add_metrology_object_line_measure。操作員add_metrology_object_generic允許使用一個操作員創建不同幾何形狀類型(例如橢圓,圓等)的計量對象。要目視檢查定義的計量對象,可以使用運算符get_metrology_object_model_contour訪問其邊界的XLD輪廓。要目視檢查創建的度量區域,可以使用運算符get_metrology_object_measures訪問其邊界的XLD輪廓。
修改模型參數
如果已執行攝像機校準,則攝像機參數和測量平面的姿勢對所有計量對象有效,并使用set_metrology_model_param添加到計量模型中。然后,get_metrology_object_result返回的測量結果將以世界坐標表示。可以使用set_metrology_model_param來改變定義計量對象的參考坐標系。
修改對象參數
將計量對象添加到計量模型時,可以設置許多參數。其中一些也可以使用運算符set_metrology_object_param進行修改。可以使用copy_metrology_model復制計量模型。要將計量模型寫入文件,可以使用運算符write_metrology_model。可以使用read_metrology_model再次從文件中讀取模型。可以使用get_metrology_object_indices查詢計量對象的索引。
對齊計量模型
align_metrology_model用于在執行下一次測量之前平移和旋轉計量模型,以使其與圖像中的當前出現相匹配。對齊是臨時的,并由下一個對齊替換。計量模型本身沒有改變。如果要使用形狀模型和find_shape_model來獲取對齊參數,請參閱align_metrology_model以獲取更多詳細信息。
應用測量
將所有計量對象添加到計量模型后,設置所有參數,并且可能發生對齊,使用apply_metrology_model執行圖像中的測量。操作員使用RANSAC算法定位測量區域內的邊緣并使指定的幾何形狀適合邊緣位置。邊緣使用運算符measure_pos或fuzzy_measure_pos在內部定位。后者使用模糊方法,并且僅在應用測量之前通過set_metrology_object_fuzzy_param設置至少一個模糊函數時使用。如果需要返回的對象形狀的多個實例(比較上面的圖像),則必須將泛型參數“num_instances”設置為應返回的實例數。添加單個計量對象時或之后使用運算符set_metrology_object_param可以設置該參數。
訪問結果
測量后,可以訪問結果。使用操作員get_metrology_object_result查詢對象的適應幾何形狀的參數。注意,如果返回一個以上的對象實例,則返回的實例的序列是任意的,即,它不是對擬合質量的度量。可以使用get_metrology_object_measures訪問所有定位邊的行和列坐標。僅使用get_metrology_object_result查詢用于返回結果的邊和它們的幅度。通過get_metrology_object_result_contour提供了作為XLD輪廓的適應幾何形狀的可視化。
清理記憶
當不再需要計量模型時,應使用clear_metrology_model銷毀它。
注意
注意,在調用運算符create_metrology_model之后,應該出于效率原因調用運算符set_metrology_model_image_size。
多線程類型:可重入(與非獨占運算符并行運行)。
多線程范圍:全局(可以從任何線程調用)。
沒有并行化處理。
此運算符返回句柄。請注意,即使將此句柄類型的實例用作輸入參數,也可以由特定運算符更改該句柄類型的實例的狀態。
參數
MetrologyHandle(output_control)metrology_model→(整數)
處理計量模型。