模式/架构建议?

时间:2009-11-03 10:07:52

标签: design-patterns

我正在做一个从相机识别人脸的项目。 这是工作流程:

  1. 从相机中获取一帧图像
  2. 检测帧中是否有运动,如果在当前帧中检测到运动,则将运动帧置于队列中以进行进一步处理。
  3. 在步骤2的输出框中搜索面
  4. 如果有脸,请保存脸部
  5. 我想要的是什么:

    1. 工作流程可以轻松扩展,比如我可能想在工作流程中添加新步骤以添加新功能。
    2. 可以轻松打开/关闭步骤,而不会影响以下步骤
    3. 我能想到的是类似服务总线的架构。 例如。第2步。可以发布指示检测到运动帧的消息,然后用户可以使用捕获的运动帧继续其处理。

      所以您怎么看?

2 个答案:

答案 0 :(得分:2)

应用程序似乎与管道类似。我会选择chain-of-responsibility pattern

答案 1 :(得分:0)

我会使用插件架构和每个帧的回调链表来处理。

这样,至少在C中,它们只是指针。您可以为不同目的创建不同的回调链接列表链,例如:

Chain 1: sobel()->generic_features()->eigenfaces()->metric_analysis()->save()

因此链适用于接受帧的回调,或前一步的结果作为输入。

希望我糟糕的解释有所帮助。