詳細說說shape model的使用

2022-07-14 09:03:12 字數 3155 閱讀 7310

基於形狀匹配shape_model是工程上用的最多的,掌握它就有了一張王牌。

針對roi小區域建模板,應用場合: 模板的形狀和大小一經製作完畢便不再改變,在查詢模板的過程中,只會改變模板的方向和位置等來匹配目標影象中的影象。定位物件內部的灰度值可以有變化,但物件輪廓一定要清晰平滑。匹配速度比灰度快

【建立模板引數 create_shape_model】

create_shape_model(template : : numlevels, anglestart, angleextent, anglestep, optimization, metric, contrast, mincontrast : modelid)

create_shape_model (imageroi, numlevels, 0, rad(360), 'auto', 'none', 'use_polarity', 30, 10, modelid)

【檢察inspect_shape_model 可選】

inspect_shape_model(image : modelimages, modelregions : numlevels, contrast : )

建立好模板後,這時還需要監視模板,用inspect_shape_model()來完成,它檢查引數的適用性,還能幫助找到合適的引數

inspect_shape_model (imageroi, shapemodelimages, shapemodelregions, 8, 30)

【保留輪廓後用get_shape_model_contours 可選】

get_shape_model_contours( : modelcontours : modelid, level : )

獲得這個模板的輪廓,用於後面的匹配

get_shape_model_contours (shapemodel, modelid, 1)

【搜尋匹配find_shape_model】

find_shape_model(image : : modelid, anglestart, angleextent, minscore, nummatches, maxoverlap, subpixel, numlevels, greediness : row, column, angle, score)

在一幅圖中找出最佳匹配的模板,返回乙個模板例項的長、寬和旋轉角度

引數設定:

find_shape_model (searchimage, modelid, 0, rad(360), 0.7, 1, 0.5, 'least_squares', 0, 0.7, rowcheck, columncheck, anglecheck, score)

【 結果轉化 vector_angle_to_rigid或 affine_trans_contour_xld】

後期結果的仿射變換和輪廓處理

【涉及引數詳解】

numlevels:

指定金字塔級數,值越大用時越少,但要保證最高層至少四個點資訊,值越大模組不易識別出來,需要設低 minscore和greediness

判斷在金字塔最高端上匹配是否失敗,可find_shape_model減小numlevels值來測試;

用 inspect_shape_model函式的輸出結果來選擇乙個較好的金字塔層數

anglestart、angleextent:

決定可能的旋轉範圍,find時只找這個範圍內匹配

判斷是否在相同物體上找到多個匹配值,如物體幾乎對稱的,則要控制旋轉範圍;

anglestep:

指定角度範圍搜尋的步長,auto時可以用 get_shape_model_params檢視

optimization:

設定none所有模型點都會被儲存,對特別大的模板,不設none用來減少模板點的數量。如果點數設少了,對應 greediness設乙個比較小值

還可選擇預處理(pregenerated completely),'pregeneration'或'no_pregeneration'。根據記憶體和時間折中

contrast:

有三個引數,第乙個數值是比較低的閾值,第二個數值是比較高的閾值。第三個數值是在基於元件尺寸選擇重要模型元件時所設定的閾值,可以用 determine_shape_model_params自動確定。

minconstrast:

將模板從雜訊中分離,如果灰度值波動範圍是10,則應設10

物體是否具有較低的對比度,又要能識別,減小mincontrast值;

設定為'auto',最小對比度會基於模板影象中的雜訊自動定義。

自動在影象和雜訊近似時才用。在某些情況下為了遮擋魯棒性,也用

metric:

決定模板識別條件,如果設』use_polarity』,則圖中物體和模板必須有相同對比度,都是亮底黑字等, 'ignore_global_polarity',在兩者對比度完全相反時也能找到目標。

判斷是否全域性或區域性地轉化對比度極性,又要能識別,設定metric合適值

greediness:

搜尋貪婪度,影響搜尋速度,若為0,則為啟發式搜尋,很耗時,若為1,則為不安全搜尋,但最快。在大多數情況下,在能夠匹配的情況下,盡可能的增大其值。

值設的太高,就找不到其中一些可見物體,這時將其設0來執行完全搜尋

如果為0,使用安全的搜尋啟發式,只要模板在影象中存在就一定能找到,相對浪費時間。為1,使用不安全的搜尋啟發式,這樣即使模板存在於影象中,也有可能找不到模板,但只是少數情況。如果設定greediness=0.9,在幾乎所有的情況下,總能找到模型的匹配。

minscore:

分析模板的旋轉對稱和它們之間的相似度,值越大,則越相似。

物體是否有封閉區域,又要能識別,則減小minscore值

subpixel:

決定是否精確到亞畫素級,設為』interpolation』,則會精確到,這模式不會占用太多時間,若需要更精確,則可設為』least_square』,』lease_square_high』,但這樣會增加額外的時間,需要在時間和精度上作折中

通常為'interpolation'。如果希望最小二乘就選擇'least_squares', 這樣才能確保執行時間和精度的權衡。

maxoverlap:

如果有重疊,又要能識別,增加maxoverlap值

maxoverlap=0, 找到的目標區域不能存在重疊, 為1,所有找到的目標區域都要返回。

看了感覺怎麼樣?來說說吧。。。

喜歡記得關注起來!趕緊的。

date的詳細說明

用法 date 選項 格式 或 date u utc universal mmddhhmm cc yy ss 以給定的格式顯示當前時間,或是設定系統日期。d,date 字串 顯示指定字串所描述的時間,而非當前時間 f,file 日期檔案 類似 date,從日期檔案中按行讀入時間描述 r,refere...

OnIdle的詳細說明

lcount 該引數是乙個計數值,當應用程式的訊息隊列為空,onidle函式被呼叫時,該計數值就增加1。每當一條新訊息被處理時,該計數值就被復位為0。你可以使用lcount引數來確定應用程式不處理訊息時空閒時間的相對長度。說明 如果要執行空閒時處理,則過載這個成員函式。當應用程式的訊息隊列為空時,o...

WPF Binding的詳細說明

後台屬性 text name為後台的屬性 控制項屬性 text elementname選擇控制項名稱 path是控制項的屬性 可以一直 點 直到目標屬性 資源template checkboxcontroltemplate為靜態資源 mode 源與目標之間的賦值關係 oneway 使用 oneway...