Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 采集累加器(软件设计)_C++_Architecture_Software Design_Acquisition - Fatal编程技术网

C++ 采集累加器(软件设计)

C++ 采集累加器(软件设计),c++,architecture,software-design,acquisition,C++,Architecture,Software Design,Acquisition,我需要一些软件设计方面的帮助。比如说,我有一个摄像头,可以获取采集的图像,将它们发送到过滤器,然后一次显示一个图像 现在,我想要的是等待两个图像,然后将这两个图像发送到过滤器,并将它们发送到屏幕 我想到了两个选择,不知道该选择哪一个: 在我的Acquisitioner(或其他)类中,我是否应该设置一个队列,在将两个图像发送到Filterer类之前等待它们? 我应该在Acquisitionner和Filterer之间设置累加器类吗 两者最终都会起作用,但你认为哪一个更好 谢谢 视情况而定。但是,如

我需要一些软件设计方面的帮助。比如说,我有一个摄像头,可以获取采集的图像,将它们发送到过滤器,然后一次显示一个图像

现在,我想要的是等待两个图像,然后将这两个图像发送到过滤器,并将它们发送到屏幕

我想到了两个选择,不知道该选择哪一个: 在我的Acquisitioner(或其他)类中,我是否应该设置一个队列,在将两个图像发送到Filterer类之前等待它们? 我应该在Acquisitionner和Filterer之间设置累加器类吗

两者最终都会起作用,但你认为哪一个更好


谢谢

视情况而定。但是,如果您的队列所做的只是等待第二个映像出现,我认为您可以直接在采集器中实现它

另一方面,如果你想加入任何附加的功能,那么增加的模块化和所有与之齐头并进的好处都不会有丝毫伤害


我认为在这种情况下,这并不重要。

视情况而定。但是,如果您的队列所做的只是等待第二个映像出现,我认为您可以直接在采集器中实现它

另一方面,如果你想加入任何附加的功能,那么增加的模块化和所有与之齐头并进的好处都不会有丝毫伤害


我认为在这种特殊情况下,这并不重要。

为了给出一个直接的答案,我将在一个单独的对象中实现累加器策略。原因如下:

在过去的类似设计中,我发现将此模型中的不同“参与者”视为源和汇非常有用。源对象将能够生成图像或将图像输出到连接的接收器对象。该系统中的过滤器或累加器将设计为管道——换句话说,它们将实现接收器和源的接口。一旦您提出了一种连接通用源、管道和接收器的机制,就可以很容易地将累加策略实现为管道,对于接收到的每个
n
th图像,如果
n
为奇数,它将保留该图像,如果
n
为偶数,则输出这两个图像


一旦你有了这个系统,在不中断代码其余部分的情况下更换源(图像文件读取器、电影解码器、相机捕获接口)、接收器(图像文件或电影编码器、显示查看器等)和管道(过滤器、累加器、编码器、多路复用器)对你来说就很简单了,我将在一个单独的对象中实现累加器策略。原因如下:

在过去的类似设计中,我发现将此模型中的不同“参与者”视为源和汇非常有用。源对象将能够生成图像或将图像输出到连接的接收器对象。该系统中的过滤器或累加器将设计为管道——换句话说,它们将实现接收器和源的接口。一旦您提出了一种连接通用源、管道和接收器的机制,就可以很容易地将累加策略实现为管道,对于接收到的每个
n
th图像,如果
n
为奇数,它将保留该图像,如果
n
为偶数,则输出这两个图像


一旦使用了此系统,您就可以在不中断其余代码的情况下更换源(图像文件读取器、电影解码器、相机捕获接口)、接收器(图像文件或电影编码器、显示查看器等)和管道(过滤器、累加器、编码器、多路复用器)。

是否不断采集图像(例如,以固定速率)?您是否需要重复此过程,还是仅重复一次?过滤器处理是否具有确定性(在时间方面)?是否存在内存限制?管道的其余部分如何工作?有太多的开放问题,无法给出单一(正确)答案。是否不断获取图像(例如,以固定速率)?您是否需要重复此过程,还是仅重复一次?过滤器处理是否具有确定性(在时间方面)?是否存在内存限制?管道的其余部分如何工作?有太多未解决的问题,无法给出单一(正确)答案。