Tesseract  3.02
tesseract-ocr/dict/stopper.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  **     Filename:    stopper.h
00003  **     Purpose:     Stopping criteria for word classifier.
00004  **     Author:      Dan Johnson
00005  **     History:     Wed May  1 09:42:57 1991, DSJ, Created.
00006  **
00007  **     (c) Copyright Hewlett-Packard Company, 1988.
00008  ** Licensed under the Apache License, Version 2.0 (the "License");
00009  ** you may not use this file except in compliance with the License.
00010  ** You may obtain a copy of the License at
00011  ** http://www.apache.org/licenses/LICENSE-2.0
00012  ** Unless required by applicable law or agreed to in writing, software
00013  ** distributed under the License is distributed on an "AS IS" BASIS,
00014  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015  ** See the License for the specific language governing permissions and
00016  ** limitations under the License.
00017  ******************************************************************************/
00018 #ifndef   STOPPER_H
00019 #define   STOPPER_H
00020 
00025 #include "genericvector.h"
00026 #include "params.h"
00027 #include "states.h"
00028 #include "unichar.h"
00029 
00030 class WERD_CHOICE;
00031 
00032 typedef uinT8 BLOB_WIDTH;
00033 
00034 struct DANGERR_INFO {
00035   DANGERR_INFO() :
00036     begin(-1), end(-1), dangerous(false), correct_is_ngram(false) {}
00037   DANGERR_INFO(int b, int e, bool d, bool n) :
00038     begin(b), end(e), dangerous(d), correct_is_ngram(n) {}
00039   int begin;
00040   int end;
00041   bool dangerous;
00042   bool correct_is_ngram;
00043 };
00044 
00045 typedef GenericVector<DANGERR_INFO> DANGERR;
00046 
00047 enum ACCEPTABLE_CHOICE_CALLER { CHOPPER_CALLER, ASSOCIATOR_CALLER };
00048 
00049 struct CHAR_CHOICE {
00050   UNICHAR_ID Class;
00051   uinT16 NumChunks;
00052   float Certainty;
00053 };
00054 
00055 class VIABLE_CHOICE_STRUCT {
00056  public:
00057   VIABLE_CHOICE_STRUCT();
00058   explicit VIABLE_CHOICE_STRUCT(int length);
00059   ~VIABLE_CHOICE_STRUCT();
00060 
00061   // Fill in the data with these values.
00062   void Init(const WERD_CHOICE& word_choice,
00063             const PIECES_STATE& pieces_state,
00064             const float certainties[],
00065             FLOAT32 adjust_factor);
00066 
00067   int Length;
00068   float Rating;
00069   float Certainty;
00070   FLOAT32 AdjustFactor;
00071   bool ComposedFromCharFragments;
00072   CHAR_CHOICE *Blob;
00073 
00074  private:
00075   // Disallow assignment and copy construction
00076   VIABLE_CHOICE_STRUCT(const VIABLE_CHOICE_STRUCT &other)
00077       : Length(0), Blob(NULL) {}
00078   VIABLE_CHOICE_STRUCT &operator=(const VIABLE_CHOICE_STRUCT &other) {
00079     return *this;
00080   }
00081 };
00082 
00083 typedef VIABLE_CHOICE_STRUCT *VIABLE_CHOICE;
00084 
00085 #endif