Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PhotoRecognizer
- {
- public:
- int perform_recogniton()
- {
- pPreProcessing->do_preprocessing();
- pFeatureExtractor->do_feature_extraction();
- pClassifier->do_classification()
- }
- boost::shared_ptr<PreProcessing> pPreProcessing;
- boost::shared_ptr<FeatureExtractor> pFeatureExtractor;
- boost::shared_ptr<Classifier> pClassifier;
- }
- class SVMClassifier: public Classifier
- {
- public:
- void do_classification();
- };
- class MethodFactory
- {
- public:
- MethodFactory(){};
- boost::shared_ptr<PreProcessing> pPreProcessing;
- boost::shared_ptr<FeatureExtractor> pFeatureExtractor;
- boost::shared_ptr<Classifier> pClassifier;
- };
- class Method1:public MethodFactory
- {
- public:
- Method1():MethodFactory()
- {
- pPreProcessing.reset(new GaussianFiltering);
- pFeatureExtractor.reset(new FFTStatictis);
- pClassifier.reset(new SVMClassifier);
- }
- };
- class Method2:public MethodFactory
- {
- public:
- Method1():MethodFactory()
- {
- pPreProcessing.reset(new MedianFiltering);
- pFeatureExtractor.reset(new WaveletStatictis);
- pClassifier.reset(new NearestNeighborClassifier);
- }
- };
- class PhotoRecognizer
- {
- public:
- PhotoRecognizer(MethodFactory *p):pFactory(p)
- {
- }
- int perform_recogniton()
- {
- pFactory->pPreProcessing->do_preprocessing();
- pFactory->pFeatureExtractor->do_feature_extraction();
- pFactory->pClassifier->do_classification()
- }
- MethodFactory *pFactory;
- }
- Method1 med;
- PhotoRecognizer recogMethod1(&med);
- med.perform_recognition()
- enum RecMethod
- {
- Method1, Method2
- };
- class PhotoRecognizer
- {
- public:
- PhotoRecognizer(RecMethod)
- {
- switch(RecMethod)
- {
- case Method1:
- pFactory.reset(new Method1());
- break;
- ...
- }
- }
- boost::shared_ptr<MethodFactory> pFactory;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement