create_shape_model(
template :: //reduce_domain後的模板影象
numlevels, //金字塔的層數,可設為「auto」或0—10的整數
anglestart, //模板旋轉的起始角度
angleextent, //模板旋轉角度範圍, >=0
anglestep, //旋轉角度的步長, >=0 and <=pi/16
optimization, //設定模板優化和模板建立方法
metric, //匹配方法設定
contrast, //設定對比度
mincontrast : //設定最小對比度
modelid ) //輸出模板控制代碼
numlevels越大,找到匹配使用的時間就越小。另外必須保證最高層的影象具有足夠的資訊(至少四個點)。可以通過inspect_shape_model函式檢視設定的結果。如果最高層金字塔的訊息太少,演算法內部會自動減少金字塔層數,如果最底層金字塔的資訊太少,函式就會報錯。如果設為auto,演算法會自動計算金字塔的層數,我們可以通過get_shape_model_params函式檢視金字塔的層數。如果金字塔的層數太大,模板不容易識別出來,這是需要將find_shape_model函式中minscore和greediness引數設定的低一些。如果金字塔層數太少找到模板的時間會增加。可以先使用inspect_shape_model函式的輸出結果來選擇乙個較好的金字塔層數。
引數anglestart、angleextent定義了模板可能發生旋轉的範圍。注意模板在find_shape_model函式中只能找到這個範圍內的匹配。引數anglestep定義了旋轉角度範圍內的步長。如果在find_shape_model函式中沒有指定亞畫素精度,這個引數指定的精度是可以實現find_shape_mode函式中的角度的。引數anglestep的選擇是基於目標的大小的,如果模板影象太小不能產生許多不同離散角度的影象,因此對於較小的模板影象anglestep應該設定的比較大。如果angleextent不是anglestep的整數倍,
將會相應的修改anglestep。
如果選擇 complete pregeneration,不同角度的模板影象將會產生並儲存在記憶體中。用來儲存模板的記憶體與旋轉角度的數目和模板影象的的點數是成正比的。因此,如果anglestep太小或是angleextent太大, 將會出現該模型不再適合(虛擬)記憶體的情況。在任何情況下,模型是完全適合主儲存器的,因為這避免了作業系統的記憶體分頁,使得尋找匹配模板的時間變短。由於find_shape_model函式中的角度可以使用亞畫素精度,乙個直徑小於200畫素的模板可以選擇anglestep>= 1.
如果選擇anglestep=』auto』 (or 0 向後相容),create_shape_model將會基於模板的大小自動定義乙個合適的角度步長. 自動計算出來的anglestep可以使用get_shape_model_params函式檢視。
如果沒有選擇complete pregeneration, 該模型會在每一層金字塔上建立在乙個參考的位置。這樣在find_shape_model函式執行時,該模型必須轉化為不同的角度和尺度在執行時在。正因為如此,匹配該模型可能需要更多的時間。
引數contras決定著模型點的對比度。對比度是用來測量目標與背景之間和目標不同部分之間區域性的灰度值差異。contrast的選擇應該確保模板中的主要特徵用於模型中。contrast也可以是兩個數值,這時模板使用近似edges_image函式中滯後閾值的演算法進行分割。這裡第乙個數值是比較低的閾值,第二個數值是比較高的閾值。contrast也可以包含第三個,這個數值是在基於元件尺寸選擇重要模型元件時所設定的閾值,比如,比指定的最小尺寸的點數還少的元件將被抑制。這個最小尺寸的閾值會在每相鄰的金字塔層之間除以2。如果乙個小的模型元件被抑制,但是不使用滯後閾值,然而在contrast中必須指定三個數值,在這種情況下前兩個數值設定成相同的數值。這個引數的設定可以在inspect_shape_model函式中檢視效果。如果contrast設定為』auto』,create_shape_model將會自動確定三個上面描述的數值。或者僅僅自動設定對比度(『auto_contrast』),滯後閾值(『auto_contrast_hyst』)或是最小尺寸(『auto_min_size』)中乙個。其他沒有自動設定的數值可以按照上面的格式再進行設定。可以允許各種組合,例如:如果設定 [『auto_contrast』,』auto_min_size』],對比度和最小尺寸自動確定;如果設定 [『auto_min_size』,20,30],最小尺寸會自動設定,而滯後閾值被設為20和30。有時候可能對比度閾值自動設定的結果是不滿意的,例如,由於一些具體應用的原因當某乙個模型元件是被包含或是被抑制時,或是目標包含幾種不同的對比度時,手動設定這些引數效果會更好。因此對比度閾值可以使用determine_shape_model_params函式自動確定,也可以在呼叫create_shape_model之前使用inspect_shape_mode函式檢查效果。
引數metric定義了在影象中匹配模板的條件。如果metric= 『use_polarity』,影象中的目標必須和模型具有一樣的對比度。例如,如果模型是乙個亮的目標在乙個暗的背景上,那麼僅僅那些比背景亮的目標可以找到。如果metric= 『ignore_global_polarity』,在兩者對比度完全相反時也能找到目標。在上面的例子中,如果目標是比背景暗的也能將目標找到。find_shape_model函式的執行時間在這種情況下將會略微增加。如果metric= ignore_local_polarity』, 即使區域性對比度改變也能找到模型。例如,當目標包含一部分中等灰度,並且其中部分比較亮部分比較暗時,這種模式是非常有用的。由於這種模式下find_shape_model函式的執行時間顯著增加,最好的方法是使用create_shape_model建立幾個反映目標可能的對比度變化的模型,同時使用find_shape_models去匹配他們。上面三個metrics僅僅適用於單通道影象。如果是多通道影象作為模板影象或搜尋影象,僅僅第乙個通道被使用。如果metric=』ignore_color_polarity』, 即使顏色對比度區域性變化也能找到模型。例如,當目標的部分區域顏色發生變化(e.g.從紅到綠)的情況。如果不能提前知道目標在哪乙個通道是可見的這種模式是非常有用的。在這種情況下find_shape_model函式的執行時間也會急劇增。』ignore_color_polarity』可以使用於具有任意通道數目的影象中。如果使用於單通道影象,他的效果和』ignore_loc al_polarity』是完全相同的。
create_shape_model建立的模板通道數目和find_shape_model中的影象通道數目可以是不同的。例如,可以使用綜合生成的單通道影象建立模型。另外,這些通道不需要是經過光譜細分(像rgb影象)的。這些通道還可以包括具有在不同方向照亮同乙個目標所獲得的影象。
模型影象template的domain區域的重心是模板的初始位置,可以在set_shape_model_origin函式中設定不同的初始位置。
歡迎使用CSDN markdow
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...
歡迎毛毛與妞妞使用CSDN markdown編輯器
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
歡迎使用CSDN markdow1n編輯器
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...