不同類型區域形態學運算時間比較分析

 

優化時間是算法優化中永恆的主題。形態學算子是外觀檢測中最常用的算子,因此,研究它們的時間開銷有很強的現實意義。

 

有如下圖的五種類型的區域:

CellOctaReg :區域面積很大,輪廓簡單。(典型一)

WhiteGridWholeReg :區域面積大,輪廓複雜。(典型二)

DefiMGPrintRegCon :區域面積小,輪廓較簡單。(這種區域沒有什麼特點,可不分析)

SubGridLineReg :區域面積大,輪廓複雜。與②類似。(典型二)

InterPsReg :區域面積很小,輪廓簡單,但是經connection 打散後,區域個數極多(典型三)

 

下面設置不同大小的結構元素,分別觀察8個形態學算子的執行時間。

 

注意:矩形形態學算子要達到與圓形形態學算子相似的效果,矩形結構元素的值應該是圓形結構元素的值的2倍

erosion_rectangle1 (Region, RegionEro, 20)     約等價於   erosion_circle (Region, RegionEro, 10)

 

時間測試程序裏面已考慮了這一因素,例如:

1 ****************** 腐蝕、膨脹、開運算、閉運算 *******************
2 erosion_rectangle1 (CellOctaReg, CellOctaReg3, Size *  2, Size * 2)
3 erosion_circle (CellOctaReg, CellOctaReg4, Size)
4 dilation_rectangle1 (CellOctaReg, CellOctaReg1, Size *  2, Size * 2)
5 dilation_circle (CellOctaReg, CellOctaReg2, Size)
6 opening_rectangle1 (CellOctaReg, CellOctaReg5, Size *  2, Size * 2)
7 opening_circle (CellOctaReg, CellOctaReg6, Size)
8 closing_rectangle1 (CellOctaReg, CellOctaReg7, Size *  2, Size * 2)
9 closing_circle (CellOctaReg, CellOctaReg8, Size)

 

測試時間統計如下表:

 

結論如下:

1、WhiteGridWholeReg SubGridLineReg 的時間規律極爲相似。

2、對於CellOctaReg 這種區域,矩形形態學算子時間都很短,圓形形態學算子值大於10時,時間急劇變長(1.5ms ~ 30ms)。

3、對於由大量細長區域或者細小區域組成的Region(例如WhiteGridWholeRegInterPsReg),腐蝕、開運算的時間要明顯 < 膨脹和閉運算

4、WhiteGridWholeReg 在執行膨脹或者閉運算時,時間開銷非常驚人,要儘量避免使用。(尤其是圓形膨脹和圓形閉運算

5、InterPsReg 這種由大量細小區域組成的Region,經connection 打散後,執行膨脹或者閉運算的時間開銷明顯增加,尤其是執行圓形膨脹和圓形閉運算,時間急劇增加。所以最好在之前執行:union1 (InterPsReg, InterPsReg)

6、並不總是結構元素的Size越大,時間越長。WhiteGridWholeReg 這種由大量細長且緊密的區域組成的Region,當Size逐漸增加時,膨脹和閉運算的時間快速增加,但Size超過某個值時,時間驟降。原因是此時原區域中的縫隙被大量填充,如下圖所示。

 

監控的語句是:closing_circle (WhiteGridWholeReg, WhiteGridWholeReg8, Size)

當Size = 18時,執行時間爲248ms,當Size = 19時,時間驟降至10ms

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章