随笔 - 80  文章 - 0 评论 - 176 阅读 - 88万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

 

优化时间是算法优化中永恒的主题。形态学算子是外观检测中最常用的算子,因此,研究它们的时间开销有很强的现实意义。

 

有如下图的五种类型的区域:

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

 

posted on   xh6300  阅读(48)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2016-11-26 Halcon中一些突然想不起来但确实有用的算子

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示