IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MatchHistogramsLvl1.h
1 // MatchHistogramsLvl1.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKIPLINTENSITYTRANSFORM_MATCHHISTOGRAMSLVL1_H__
16 #define __IPSDKIPLINTENSITYTRANSFORM_MATCHHISTOGRAMSLVL1_H__
17 
21 
22 // Attributes headers
23 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InHistogram1.h>
24 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/InHistogram2.h>
25 #include <IPSDKIPL/IPSDKIPLAttributes/Attribute/DataItem/OutIntensityLUT.h>
26 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/IntensityLUT.h>
27 #include <IPSDKIPL/IPSDKIPLAttributes/DataItem/Range.h>
28 
29 namespace ipsdk {
30 namespace imaproc {
31 namespace itrans {
32 
35 
36 // declare processor class
37 IPSDK_DECLARE_LVL1_PROCESSOR(ASYNC2, IPSDKIPLIntensityTransform, MatchHistograms,
39  (((ipsdk)(imaproc)(attr))(InHistogram1))
40  (((ipsdk)(imaproc)(attr))(InHistogram2))
41  (((ipsdk)(imaproc)(attr))(OutIntensityLUT)(ipsdk::processor::allocate)))
42 
43 // methods
44 public:
45 
46 protected:
47  processor::RetrievalResult provideProcessor(const boost::shared_ptr<core::BaseAction>& pProcessor,
48  const core::BasePriority& priority,
49  core::ActionProviderPtr& pProvider);
50 
53  ipsdk::core::ExecResult postProcess();
54 
55 // attributes
56 protected:
57  attr::IntensityLUTPtr _pLutInToEqualized;
58  attr::IntensityLUTPtr _pLutOutToEqualized;
59  attr::RangeConstPtr _pNormRange;
60 
61 };
62 
65 
66 } // end of namespace itrans
67 } // end of namespace imaproc
68 } // end of namespace ipsdk
69 
70 #endif // __IPSDKIPLINTENSITYTRANSFORM_MATCHHISTOGRAMSLVL1_H__
ProcessingResult< eRetrievalResultType > RetrievalResult
#define IPSDK_DECLARE_LVL1_PROCESSOR(ProcType, libraryName, algoName, RuleString, attributeSeq)
IPSDKBASEPROCESSING_API RulePtr none()
boost::shared_ptr< const ipsdk::imaproc::attr::Range > RangeConstPtr
shared pointer to const ipsdk::imaproc::attr::Range
Definition: Range.h:157
boost::shared_ptr< ipsdk::imaproc::attr::IntensityLUT > IntensityLUTPtr
shared pointer to ipsdk::imaproc::attr::IntensityLUT
Definition: IntensityLUT.h:163
Definition of import/export macro for library.
processor::OutputInitializerPtr allocate(const boost::weak_ptr< OutputAttributeType > &pOutputAttribute)
boost::shared_ptr< BaseActionProvider > ActionProviderPtr