3

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

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

感兴趣的区域是推荐的设计模式吗?我知道它可以提高 OpenCV 的性能,这是一个需要高性能的应用程序。我的应用程序将受益于高性能,但它不像在 OpenCV 中那么重要。

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

4

5 回答 5

1

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

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

于 2012-10-19T07:45:44.483 回答
1

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

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

于 2012-10-19T08:39:44.667 回答
0

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

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

于 2012-10-19T00:11:33.333 回答
0

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

于 2012-10-19T00:14:50.607 回答
0

确定投资回报率,关键是执行我们感兴趣的实际算法。

我从事条形码识别工作,鉴于开源库的可用性实际上解决了解码阶段,我经历了在没有ROI 的情况下执行任务的困难。

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

于 2012-10-19T10:38:41.710 回答