tesseract  3.03
tesseract::CubeTessClassifier Class Reference

#include <cubeclassifier.h>

Inheritance diagram for tesseract::CubeTessClassifier:
tesseract::ShapeClassifier

List of all members.

Public Member Functions

 CubeTessClassifier (Tesseract *tesseract)
virtual ~CubeTessClassifier ()
virtual int UnicharClassifySample (const TrainingSample &sample, Pix *page_pix, int debug, UNICHAR_ID keep_this, GenericVector< UnicharRating > *results)
virtual const ShapeTableGetShapeTable () const

Detailed Description

Definition at line 58 of file cubeclassifier.h.


Constructor & Destructor Documentation

Definition at line 78 of file cubeclassifier.cpp.

    : cube_cntxt_(tesseract->GetCubeRecoContext()),
      shape_table_(*tesseract->shape_table()),
      pruner_(new TessClassifier(true, tesseract)) {
}

Definition at line 83 of file cubeclassifier.cpp.

                                        {
  delete pruner_;
}

Member Function Documentation

Implements tesseract::ShapeClassifier.

Definition at line 127 of file cubeclassifier.cpp.

                                                          {
  return &shape_table_;
}
int tesseract::CubeTessClassifier::UnicharClassifySample ( const TrainingSample sample,
Pix *  page_pix,
int  debug,
UNICHAR_ID  keep_this,
GenericVector< UnicharRating > *  results 
) [virtual]

Reimplemented from tesseract::ShapeClassifier.

Definition at line 89 of file cubeclassifier.cpp.

                                                                 {
  int num_results = pruner_->UnicharClassifySample(sample, page_pix, debug,
                                                   keep_this, results);
  if (page_pix == NULL) return num_results;

  ASSERT_HOST(cube_cntxt_ != NULL);
  const TBOX& char_box = sample.bounding_box();
  CubeObject* cube_obj = new tesseract::CubeObject(
      cube_cntxt_, page_pix, char_box.left(),
      pixGetHeight(page_pix) - char_box.top(),
      char_box.width(), char_box.height());
  CharAltList* alt_list = cube_obj->RecognizeChar();
  CharSet* char_set = cube_cntxt_->CharacterSet();
  if (alt_list != NULL) {
    for (int r = 0; r < num_results; ++r) {
      // Get the best cube probability of the unichar in the result.
      double best_prob = 0.0;
      for (int i = 0; i < alt_list->AltCount(); ++i) {
        int alt_id = alt_list->Alt(i);
        int unichar_id = char_set->UnicharID(char_set->ClassString(alt_id));
        if (unichar_id == (*results)[r].unichar_id &&
            alt_list->AltProb(i) > best_prob) {
          best_prob = alt_list->AltProb(i);
        }
      }
      (*results)[r].rating = best_prob;
    }
    delete alt_list;
    // Re-sort by rating.
    results->sort(&UnicharRating::SortDescendingRating);
  }
  delete cube_obj;
  return results->size();
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines