感兴趣的区域是一个好的设计模式吗?

时间:2012-10-19 00:04:56

标签: design-patterns opencv language-agnostic

图像处理库OpenCV有一个名为RegionOfInterest的概念,它使大多数函数仅在该区域上运行。该区域可以设置,移动,取消等等。

我正在研究类似的应用程序数据,我正在考虑使用类似的模式,选择一个区域并在该区域内进行分析和处理。

感兴趣的区域是推荐的设计模式吗?据我所知,它提高了OpenCV的性能,OpenCV是一个需要高性能的应用程序。我的应用程序将受益于高性能,但它不像OpenCV那样重要。

有哪些替代品?我正在考虑创建一个解决相同问题的Region对象,但是,例如,可以从同一组数据创建多个区域。这种方法有什么严重的缺点吗?

5 个答案:

答案 0 :(得分:1)

感兴趣区域实际上与您正在处理的对象的性质有关:图像,它是连续的2D(或更高维)格子或定期采样点(像素)。在图像处理中仅对图像的某些部分(即感兴趣的区域)起作用是非常有用的:它可以加速处理,或者如果仅保留ROI则甚至可以节省一些存储器。 ROI的一大优势是,它们必须采用简单的几何形状,如矩形,因此非常容易处理。

如果您的数据没有图像这样的结构,您可以始终使用适当的设计模式,例如Composite。使用复合模式,您可以设置(子)数据组,并对应用于组中每个元素的组执行操作。

答案 1 :(得分:1)

根据您的描述,它听起来像Observer的变体。这些函数仅“观察”系统状态的特定部分,并且仅在该状态下被激活。

所以我的答案是肯定的:)

答案 2 :(得分:0)

对我而言,“感兴趣的区域”对应于您所谓的“区域”对象的单例。因此,您的决定归结为决定您是否需要/需要/能够负担一个或多个“区域”对象。

线程安全或重入是一个问题吗?

答案 3 :(得分:0)

感兴趣的区域可能不是 design 模式http://en.wikipedia.org/wiki/Software_design_pattern设计模式(加上或减去几个)是http://en.wikipedia.org/wiki/Design_Patterns_%28book%29中的模式。有很多其他类型的模式。见http://hillside.net/patterns/

答案 4 :(得分:0)

识别 ROI,执行我们感兴趣的实际算法至关重要。

我致力于条形码识别,并且考虑到实际解决解码阶段的开源库的可用性,我遇到了在没有投资回报率的情况下执行任务的难度。

算法被设计为在某些特定的类型上运行良好,如果数据,我会说在实际图像处理中ROI识别几乎是必需