Developer Documentation
RAVL, Recognition And Vision Library
USER HOME PAGE CLASS LIST CONTENTS
Ravl - Core - Data Processing - Processes


Complex processes

Sometimes we wish to combine two or more streams of data. There are two many combinations of inputs and output, passive and active inputs, to support directly, however some simple cases are provided for. Implementing other more complex combinations for a specific application is not complicated. As before both the use of simple functions and processes based on classes are supported. The wrappers of multiple argument processes are show in Figure 5 and Figure 6.

Figure 5: 2 Argument process
proc2istream.eps
Figure 6: 3 Argument process
proc3istream.eps

The following example is not as elegant as previous examples, as the two input streams are setup separately to aid clarity. Figure 7 shows the pipelines created.

Figure 7: Example of a 2 input process.
ex_proc2istream.eps

DPIFileC<IntT> src1("in.dat");
DPIPortC<RealT> src2 = DPIFileC<RealT>("in2.dat") >> DPOffsetScale(2.0,3.0);
DPIStreamOp21C<IntT,RealT,RealT>(MyComibinationProcC("some parameters"),src1,src2) >> DPOffsetScale(5.0,2.0) >>= DPIFileC<RealT>("out.dat");

Normal classes:

 DPProcessC Templated process handle.
 DPFuncP2ProcC Function ptr to process handle.
 DPProcInfoC Process information.
 DPOffsetScaleC OffsetScale a stream of data.
 DPRunningAverageC Running average on a stream of data.

Normal functions:

 Process(OutT (*func)(const InT &) ) Turn a function into a process.
 operator >>(const DPProcessC &,OutT (*func)(InterT) )
 operator >>(InterT (*func)(InT) ,const DPProcessC &)
 DPFunc2Proc(OutT (*func)(const InT &) )
 operator >>(const DPProcessC &,OutT (*func)(const InterT &) )
 operator >>(InterT (*func)(const InT &) ,const DPProcessC &)
 operator >>(InterT (*func1)(InT) ,OutT (*func2)(InterT) )
 Process(const ObjT &,OutT (*nmethod)(const InT &) ) Turn a function into a process.
 DPOffsetScale(const NumTypeT &,const ScaleT &)
 DPRunningAverage(const NumTypeT &,IntT) Construct a running average.

Advanced classes:

 DPProcessBaseC Process handle base.
 DPMethod2ProcC Methodtion handle.

Develop classes:

 DPProcessBaseBodyC Process Base body.
 DPProcessBodyC Process body.
 DPFunc2ProcBodyC Function body.
 DPFunc2ProcC Function handle.
 DPFuncP2ProcBodyC Function ptr to process body.
 DPCPFuncP2ProcBodyC Function ptr to process, where function has a constant reg as argument.
 DPProcInfoBodyC Process information body.
 DPMethod2ProcBodyC Methodtion body.
 DPMethod2Proc21BodyC Access a 2 argument method to a process.
 DPMethod2Proc21C Access a 2 argument method to a process.
 DPMethod2Proc31BodyC Access a 2 argument method to a process.
 DPMethod2Proc31C Access a 2 argument method to a process.
 DPFunc2Proc21BodyC Access a 2 argument func to a process.
 DPFunc2Proc21C Access a 2 argument func to a process.
 DPFunc2Proc31BodyC Access a 2 argument func to a process.
 DPFunc2Proc31C Access a 2 argument func to a process.
 DPOffsetScaleBodyC OffsetScale and offset by value body
 DPRunningAverageBodyC Running average body class.

Develop functions:

 Process(const ObjT &,Out1T (*method)(const In1T &,const In2T &) ) Create a process from a method.
 Process(const ObjT &,Out1T (*method)(const In1T &,const In2T &,const In3T &) ) Create a process from a method.
 Process(Out1T (*func)(const In1T &,const In2T &) ) Create a process from a func.
 Process(Out1T (*func)(const In1T &,const In2T &,const In3T &) ) Create a process from a func.
Maintainer:Charles Galambos, Documentation by CxxDoc: Tue Aug 13 10:00:48 2002