【问题标题】:Is the region of interest a good design pattern?感兴趣的区域是一个好的设计模式吗?
【发布时间】:2012-10-09 13:18:02
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: design-patterns opencv language-agnostic


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            识别 ROI,关键是执行我们感兴趣的实际算法。

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

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

            【讨论】:

              猜你喜欢
              • 2011-08-10
              • 1970-01-01
              • 2013-03-03
              • 1970-01-01
              • 2012-02-22
              • 1970-01-01
              • 2013-10-19
              • 2012-04-25
              相关资源
              最近更新 更多