mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-01 07:59:05 +08:00
105 lines
3.7 KiB
C
105 lines
3.7 KiB
C
|
/* -*-C-*-
|
||
|
********************************************************************************
|
||
|
*
|
||
|
* File: chopper.h (Formerly chopper.h)
|
||
|
* Description:
|
||
|
* Author: Mark Seaman, SW Productivity
|
||
|
* Created: Fri Oct 16 14:37:00 1987
|
||
|
* Modified: Wed May 15 14:24:26 1991 (Mark Seaman) marks@hpgrlt
|
||
|
* Language: C
|
||
|
* Package: N/A
|
||
|
* Status: Reusable Software Component
|
||
|
*
|
||
|
* (c) Copyright 1987, Hewlett-Packard Company.
|
||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
** you may not use this file except in compliance with the License.
|
||
|
** You may obtain a copy of the License at
|
||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||
|
** Unless required by applicable law or agreed to in writing, software
|
||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
** See the License for the specific language governing permissions and
|
||
|
** limitations under the License.
|
||
|
*
|
||
|
*********************************************************************************/
|
||
|
|
||
|
#ifndef CHOPPER_H
|
||
|
#define CHOPPER_H
|
||
|
|
||
|
/*----------------------------------------------------------------------
|
||
|
I n c l u d e s
|
||
|
----------------------------------------------------------------------*/
|
||
|
#include "choicearr.h"
|
||
|
#include "seam.h"
|
||
|
#include "matrix.h"
|
||
|
#include "stopper.h"
|
||
|
#include "states.h"
|
||
|
#include "cutil.h"
|
||
|
|
||
|
/*----------------------------------------------------------------------
|
||
|
F u n c t i o n s
|
||
|
----------------------------------------------------------------------*/
|
||
|
void preserve_outline(EDGEPT *start);
|
||
|
|
||
|
void preserve_outline_tree(TESSLINE *srcline);
|
||
|
|
||
|
EDGEPT *restore_outline(EDGEPT *start);
|
||
|
|
||
|
void restore_outline_tree(TESSLINE *srcline);
|
||
|
|
||
|
SEAM *attempt_blob_chop(TWERD *word, INT32 blob_number, SEAMS seam_list);
|
||
|
|
||
|
int any_shared_split_points(SEAMS seam_list, SEAM *seam);
|
||
|
|
||
|
int check_blob(TBLOB *blob);
|
||
|
|
||
|
CHOICES_LIST improve_one_blob(TWERD *word,
|
||
|
CHOICES_LIST char_choices,
|
||
|
int fx,
|
||
|
INT32 *blob_number,
|
||
|
SEAMS *seam_list,
|
||
|
DANGERR *fixpt,
|
||
|
STATE *this_state,
|
||
|
STATE *correct_state,
|
||
|
INT32 pass);
|
||
|
|
||
|
INT16 check_seam_order(TBLOB *blob, SEAM *seam);
|
||
|
|
||
|
CHOICES_LIST chop_word_main(register TWERD *word,
|
||
|
int fx,
|
||
|
A_CHOICE *best_choice,
|
||
|
A_CHOICE *raw_choice,
|
||
|
BOOL8 tester,
|
||
|
BOOL8 trainer);
|
||
|
|
||
|
void improve_by_chopping(register TWERD *word,
|
||
|
CHOICES_LIST *char_choices,
|
||
|
int fx,
|
||
|
STATE *best_state,
|
||
|
A_CHOICE *best_choice,
|
||
|
A_CHOICE *raw_choice,
|
||
|
SEAMS *seam_list,
|
||
|
DANGERR *fixpt,
|
||
|
STATE *chop_states,
|
||
|
INT32 *state_count,
|
||
|
STATE *correct_state,
|
||
|
INT32 pass);
|
||
|
|
||
|
INT16 select_blob_to_split(CHOICES_LIST char_choices, float rating_ceiling);
|
||
|
|
||
|
SEAMS start_seam_list(TBLOB *blobs);
|
||
|
|
||
|
INT16 total_containment(TBLOB *blob1, TBLOB *blob2);
|
||
|
|
||
|
MATRIX word_associator(TBLOB *blobs,
|
||
|
SEAMS seams,
|
||
|
STATE *state,
|
||
|
int fxid,
|
||
|
A_CHOICE *best_choice,
|
||
|
A_CHOICE *raw_choice,
|
||
|
char *correct,
|
||
|
DANGERR *fixpt,
|
||
|
STATE *best_state,
|
||
|
INT32 pass);
|
||
|
#endif
|