Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
tesseract::CubeTessClassifier Class Reference

#include <cubeclassifier.h>

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

Public Member Functions

 CubeTessClassifier (Tesseract *tesseract)
 
virtual ~CubeTessClassifier ()
 
virtual int ClassifySample (const TrainingSample &sample, Pix *page_pix, int debug, int keep_this, GenericVector< ShapeRating > *results)
 
virtual const ShapeTableGetShapeTable () const
 
- Public Member Functions inherited from tesseract::ShapeClassifier
virtual ~ShapeClassifier ()
 

Detailed Description

Definition at line 57 of file cubeclassifier.h.

Constructor & Destructor Documentation

tesseract::CubeTessClassifier::CubeTessClassifier ( tesseract::Tesseract tesseract)
explicit

Definition at line 79 of file cubeclassifier.cpp.

80  : cube_cntxt_(tesseract->GetCubeRecoContext()),
81  shape_table_(*tesseract->shape_table()),
82  pruner_(new TessClassifier(true, tesseract)) {
83 }
CubeRecoContext * GetCubeRecoContext()
const ShapeTable * shape_table() const
Definition: classify.h:66
tesseract::CubeTessClassifier::~CubeTessClassifier ( )
virtual

Definition at line 84 of file cubeclassifier.cpp.

84  {
85  delete pruner_;
86 }

Member Function Documentation

int tesseract::CubeTessClassifier::ClassifySample ( const TrainingSample sample,
Pix *  page_pix,
int  debug,
int  keep_this,
GenericVector< ShapeRating > *  results 
)
virtual

Implements tesseract::ShapeClassifier.

Definition at line 90 of file cubeclassifier.cpp.

92  {
93  int num_results = pruner_->ClassifySample(sample, page_pix, debug, keep_this,
94  results);
95  if (page_pix == NULL) return num_results;
96 
97  ASSERT_HOST(cube_cntxt_ != NULL);
98  const TBOX& char_box = sample.bounding_box();
99  CubeObject* cube_obj = new tesseract::CubeObject(
100  cube_cntxt_, page_pix, char_box.left(),
101  pixGetHeight(page_pix) - char_box.top(),
102  char_box.width(), char_box.height());
103  CharAltList* alt_list = cube_obj->RecognizeChar();
104  CharSet* char_set = cube_cntxt_->CharacterSet();
105  if (alt_list != NULL) {
106  for (int r = 0; r < num_results; ++r) {
107  const Shape& shape = shape_table_.GetShape((*results)[r].shape_id);
108  // Get the best cube probability of all unichars in the shape.
109  double best_prob = 0.0;
110  for (int i = 0; i < alt_list->AltCount(); ++i) {
111  int alt_id = alt_list->Alt(i);
112  int unichar_id = char_set->UnicharID(char_set->ClassString(alt_id));
113  if (shape.ContainsUnichar(unichar_id) &&
114  alt_list->AltProb(i) > best_prob) {
115  best_prob = alt_list->AltProb(i);
116  }
117  }
118  (*results)[r].rating = best_prob;
119  }
120  delete alt_list;
121  // Re-sort by rating.
123  }
124  delete cube_obj;
125  return results->size();
126 }
Definition: cluster.h:32
const Shape & GetShape(int shape_id) const
Definition: shapetable.h:179
#define NULL
Definition: host.h:144
virtual int ClassifySample(const TrainingSample &sample, Pix *page_pix, int debug, int keep_this, GenericVector< ShapeRating > *results)
inT16 left() const
Definition: rect.h:67
inT16 width() const
Definition: rect.h:104
Definition: rect.h:29
static int SortDescendingRating(const void *t1, const void *t2)
CharAltList * RecognizeChar()
inT16 top() const
Definition: rect.h:53
int size() const
Definition: genericvector.h:59
CharSet * CharacterSet() const
#define ASSERT_HOST(x)
Definition: errcode.h:84
inT16 height() const
Definition: rect.h:97
const ShapeTable * tesseract::CubeTessClassifier::GetShapeTable ( ) const
virtual

Implements tesseract::ShapeClassifier.

Definition at line 129 of file cubeclassifier.cpp.

129  {
130  return &shape_table_;
131 }

The documentation for this class was generated from the following files: