Tesseract  3.02
OSResults Struct Reference

#include <osdetect.h>

List of all members.

Public Member Functions

 OSResults ()
void update_best_orientation ()
void set_best_orientation (int orientation_id)
void update_best_script (int orientation_id)
int get_best_script (int orientation_id) const
void accumulate (const OSResults &osr)
void print_scores (void) const
void print_scores (int orientation_id) const

Public Attributes

float orientations [4]
float scripts_na [4][kMaxNumberOfScripts]
UNICHARSETunicharset
OSBestResult best_result

Detailed Description

Definition at line 47 of file osdetect.h.


Constructor & Destructor Documentation

OSResults::OSResults ( ) [inline]

Definition at line 48 of file osdetect.h.

              : unicharset(NULL) {
    for (int i = 0; i < 4; ++i) {
      for (int j = 0; j < kMaxNumberOfScripts; ++j)
        scripts_na[i][j] = 0;
      orientations[i] = 0;
    }
  }

Member Function Documentation

void OSResults::accumulate ( const OSResults osr)

Definition at line 149 of file osdetect.cpp.

                                               {
  for (int i = 0; i < 4; ++i) {
    orientations[i] += osr.orientations[i];
    for (int j = 0; j < kMaxNumberOfScripts; ++j)
      scripts_na[i][j] += osr.scripts_na[i][j];
  }
  unicharset = osr.unicharset;
  update_best_orientation();
  update_best_script(best_result.orientation_id);
}
int OSResults::get_best_script ( int  orientation_id) const

Definition at line 117 of file osdetect.cpp.

                                                       {
  int max_id = -1;
  for (int j = 0; j < kMaxNumberOfScripts; ++j) {
    const char *script = unicharset->get_script_from_script_id(j);
    if (strcmp(script, "Common") && strcmp(script, "NULL")) {
      if (max_id == -1 ||
          scripts_na[orientation_id][j] > scripts_na[orientation_id][max_id])
        max_id = j;
    }
  }
  return max_id;
}
void OSResults::print_scores ( void  ) const

Definition at line 131 of file osdetect.cpp.

                                       {
  for (int i = 0; i < 4; ++i) {
    printf("Orientation id #%d", i);
    print_scores(i);
  }
}
void OSResults::print_scores ( int  orientation_id) const

Definition at line 139 of file osdetect.cpp.

                                                     {
  for (int j = 0; j < kMaxNumberOfScripts; ++j) {
    if (scripts_na[orientation_id][j]) {
      printf("%12s\t: %f\n", unicharset->get_script_from_script_id(j),
             scripts_na[orientation_id][j]);
    }
  }
}
void OSResults::set_best_orientation ( int  orientation_id)

Definition at line 89 of file osdetect.cpp.

                                                       {
  best_result.orientation_id = orientation_id;
  best_result.oconfidence = 0;
}
void OSResults::update_best_orientation ( )

Definition at line 67 of file osdetect.cpp.

                                        {
  float first = orientations[0];
  float second = orientations[1];
  best_result.orientation_id = 0;
  if (orientations[0] < orientations[1]) {
    first = orientations[1];
    second = orientations[0];
    best_result.orientation_id = 1;
  }
  for (int i = 2; i < 4; ++i) {
    if (orientations[i] > first) {
      second = first;
      first = orientations[i];
      best_result.orientation_id = i;
    } else if (orientations[i] > second) {
      second = orientations[i];
    }
  }
  // Store difference of top two orientation scores.
  best_result.oconfidence = first - second;
}
void OSResults::update_best_script ( int  orientation_id)

Definition at line 94 of file osdetect.cpp.

                                                  {
  // We skip index 0 to ignore the "Common" script.
  float first = scripts_na[orientation][1];
  float second = scripts_na[orientation][2];
  best_result.script_id = 1;
  if (scripts_na[orientation][1] < scripts_na[orientation][2]) {
    first = scripts_na[orientation][2];
    second = scripts_na[orientation][1];
    best_result.script_id = 2;
  }
  for (int i = 3; i < kMaxNumberOfScripts; ++i) {
    if (scripts_na[orientation][i] > first) {
      best_result.script_id = i;
      second = first;
      first = scripts_na[orientation][i];
    } else if (scripts_na[orientation][i] > second) {
      second = scripts_na[orientation][i];
    }
  }
  best_result.sconfidence =
      (first / second - 1.0) / (kScriptAcceptRatio - 1.0);
}

Member Data Documentation

Definition at line 79 of file osdetect.h.

Definition at line 74 of file osdetect.h.

Definition at line 76 of file osdetect.h.

Definition at line 78 of file osdetect.h.


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