Tesseract 3.02

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
tesseract::IntFeatureMap Class Reference

`#include <intfeaturemap.h>`

List of all members.

## Public Member Functions
| IntFeatureMap ()
| ~IntFeatureMap ()
int | sparse_size () const
int | compact_size () const
const IntFeatureSpace & | feature_space () const
const IndexMapBiDi & | feature_map () const
int | IndexFeature (const INT_FEATURE_STRUCT &f) const
int | MapFeature (const INT_FEATURE_STRUCT &f) const
int | MapIndexFeature (int index_feature) const
INT_FEATURE_STRUCT | InverseIndexFeature (int index_feature) const
INT_FEATURE_STRUCT | InverseMapFeature (int map_feature) const
void | DeleteMapFeature (int map_feature)
bool | IsMapFeatureDeleted (int map_feature) const
void | Init (const IntFeatureSpace &feature_space)
int | OffsetFeature (int index_feature, int dir) const
int | FindNZFeatureMapping (SampleIterator *it)
int | FinalizeMapping (SampleIterator *it)
void | IndexAndSortFeatures (const INT_FEATURE_STRUCT *features, int num_features, GenericVector< int > *sorted_features) const
int | MapIndexedFeatures (const GenericVector< int > &index_features, GenericVector< int > *map_features) const
void | DebugMapFeatures (const GenericVector< int > &map_features) const

## Detailed Description

Definition at line 48 of file intfeaturemap.h.

## Constructor & Destructor Documentation

tesseract::IntFeatureMap::IntFeatureMap | ( |  | ) |

Definition at line 35 of file intfeaturemap.cpp.

: mapping_changed_(true), compact_size_(0) {
for (int dir = 0; dir < kNumOffsetMaps; ++dir) {
offset_plus_[dir] = NULL;
offset_minus_[dir] = NULL;
}
}

tesseract::IntFeatureMap::~IntFeatureMap | ( |  | ) |

Definition at line 43 of file intfeaturemap.cpp.

{
Clear();
}

## Member Function Documentation

int tesseract::IntFeatureMap::compact_size | ( |  | ) | const
| inline

Definition at line 57 of file intfeaturemap.h.

{
return compact_size_;
}

void tesseract::IntFeatureMap::DebugMapFeatures | ( | const GenericVector< int > & | map_features | ) | const

Definition at line 173 of file intfeaturemap.cpp.

{
for (int i = 0; i < map_features.size(); ++i) {
INT_FEATURE_STRUCT f = InverseMapFeature(map_features[i]);
f.print();
}
}

void tesseract::IntFeatureMap::DeleteMapFeature | ( | int | map_feature | ) |

Definition at line 64 of file intfeaturemap.cpp.

{
feature_map_.Merge(-1, map_feature);
mapping_changed_ = true;
}

const IndexMapBiDi& tesseract::IntFeatureMap::feature_map | ( |  | ) | const
| inline

Definition at line 63 of file intfeaturemap.h.

{
return feature_map_;
}

const IntFeatureSpace& tesseract::IntFeatureMap::feature_space | ( |  | ) | const
| inline

Definition at line 60 of file intfeaturemap.h.

{
return feature_space_;
}

int tesseract::IntFeatureMap::FinalizeMapping | ( | SampleIterator * | it | ) |

Definition at line 160 of file intfeaturemap.cpp.

{
if (mapping_changed_) {
feature_map_.CompleteMerges();
compact_size_ = feature_map_.CompactSize();
#ifdef EXPERIMENT_ON
it->MapSampleFeatures(*this);
#endif
mapping_changed_ = false;
}
return compact_size_;
}

int tesseract::IntFeatureMap::FindNZFeatureMapping | ( | SampleIterator * | it | ) |

void tesseract::IntFeatureMap::IndexAndSortFeatures | ( | const INT_FEATURE_STRUCT * | features,
|  | int | num_features,
|  | GenericVector< int > * | sorted_features
| ) |  | const
| inline

Definition at line 104 of file intfeaturemap.h.

{
feature_space_.IndexAndSortFeatures(features, num_features,
sorted_features);
}

int tesseract::IntFeatureMap::IndexFeature | ( | const INT_FEATURE_STRUCT & | f | ) | const

Definition at line 48 of file intfeaturemap.cpp.

{
return feature_space_.Index(f);
}

void tesseract::IntFeatureMap::Init | ( | const IntFeatureSpace & | feature_space | ) |

Definition at line 74 of file intfeaturemap.cpp.

{
feature_space_ = feature_space;
mapping_changed_ = false;
int sparse_size = feature_space_.Size();
feature_map_.Init(sparse_size, true);
feature_map_.Setup();
compact_size_ = feature_map_.CompactSize();
// Initialize look-up tables if needed.
FCOORD dir = FeatureDirection(0);
if (dir.x() == 0.0f && dir.y() == 0.0f)
InitIntegerFX();
// Compute look-up tables to generate offset features.
for (int dir = 0; dir < kNumOffsetMaps; ++dir) {
delete [] offset_plus_[dir];
delete [] offset_minus_[dir];
offset_plus_[dir] = new int[sparse_size];
offset_minus_[dir] = new int[sparse_size];
}
for (int dir = 1; dir <= kNumOffsetMaps; ++dir) {
for (int i = 0; i < sparse_size; ++i) {
int offset_index = ComputeOffsetFeature(i, dir);
offset_plus_[dir - 1][i] = offset_index;
offset_index = ComputeOffsetFeature(i, -dir);
offset_minus_[dir - 1][i] = offset_index;
}
}
}

INT_FEATURE_STRUCT tesseract::IntFeatureMap::InverseIndexFeature | ( | int | index_feature | ) | const

Definition at line 57 of file intfeaturemap.cpp.

{
return feature_space_.PositionFromIndex(index_feature);
}

INT_FEATURE_STRUCT tesseract::IntFeatureMap::InverseMapFeature | ( | int | map_feature | ) | const

Definition at line 60 of file intfeaturemap.cpp.

{
int index = feature_map_.CompactToSparse(map_feature);
return feature_space_.PositionFromIndex(index);
}

bool tesseract::IntFeatureMap::IsMapFeatureDeleted | ( | int | map_feature | ) | const

Definition at line 68 of file intfeaturemap.cpp.

{
return feature_map_.IsCompactDeleted(map_feature);
}

int tesseract::IntFeatureMap::MapFeature | ( | const INT_FEATURE_STRUCT & | f | ) | const

Definition at line 51 of file intfeaturemap.cpp.

{
return feature_map_.SparseToCompact(feature_space_.Index(f));
}

int tesseract::IntFeatureMap::MapIndexedFeatures | ( | const GenericVector< int > & | index_features,
|  | GenericVector< int > * | map_features
| ) |  | const
| inline

Definition at line 115 of file intfeaturemap.h.

{
return feature_map_.MapFeatures(index_features, map_features);
}

int tesseract::IntFeatureMap::MapIndexFeature | ( | int | index_feature | ) | const

Definition at line 54 of file intfeaturemap.cpp.

{
return feature_map_.SparseToCompact(index_feature);
}

int tesseract::IntFeatureMap::OffsetFeature | ( | int | index_feature,
|  | int | dir
| ) |  | const

Definition at line 114 of file intfeaturemap.cpp.

{
if (dir > 0 && dir <= kNumOffsetMaps)
return offset_plus_[dir - 1][index_feature];
else if (dir < 0 && -dir <= kNumOffsetMaps)
return offset_minus_[-dir - 1][index_feature];
else if (dir == 0)
return index_feature;
else
return -1;
}

int tesseract::IntFeatureMap::sparse_size | ( |  | ) | const
| inline

Definition at line 54 of file intfeaturemap.h.

{
return feature_space_.Size();
}

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

- /mnt/data/src/tesseract-ocr/classify/intfeaturemap.h
- /mnt/data/src/tesseract-ocr/classify/intfeaturemap.cpp