void
  configure(const tendrils& params, const tendrils& inputs, const tendrils& outputs)
  {
    feature_detector_ = cv::FeatureDetector::create(feature_detector_type_names[T]);

    read_tendrils_as_file_node(params, boost::bind(&cv::FeatureDetector::read, &(*feature_detector_), _1));
  }
  void
  configure(const tendrils& params, const tendrils& inputs, const tendrils& outputs)
  {
    descriptor_extractor_ = cv::DescriptorExtractor::create(descriptor_extractor_type_names[T]);

    read_tendrils_as_file_node(params, boost::bind(&cv::DescriptorExtractor::read, &(*descriptor_extractor_), _1));
  }
  void
  configure(const tendrils& params, const tendrils& inputs, const tendrils& outputs)
  {
#if CV_MAJOR_VERSION == 3
    switch(T) {
      case FAST:
        feature_detector_ = cv::FastFeatureDetector::create();
        break;
      case ORB:
        feature_detector_ = cv::ORB::create();
        break;
      case SIFT:
        feature_detector_ = cv::xfeatures2d::SIFT::create();
        break;
    }
#else
    feature_detector_ = cv::FeatureDetector::create(feature_detector_type_names[T]);
#endif
    read_tendrils_as_file_node(params, feature_detector_);
  }