Tesseract 3.02

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

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions | Variables
blobclass.cpp File Reference
`#include "blobclass.h"`
`#include "extract.h"`
`#include "efio.h"`
`#include "featdefs.h"`
`#include "callcpp.h"`
`#include "chartoname.h"`
`#include <math.h>`
`#include <stdio.h>`
`#include <signal.h>`

Go to the source code of this file.

## Macros
#define | MAXFILENAME 80
#define | MAXMATCHES 10
#define | TRAIN_SUFFIX ".tr"

## Functions
void | LearnBlob (const FEATURE_DEFS_STRUCT &FeatureDefs, const STRING &filename, TBLOB *Blob, const DENORM &denorm, const char *BlobText)
void | LearnBlob (const FEATURE_DEFS_STRUCT &FeatureDefs, FILE *FeatureFile, TBLOB *Blob, const DENORM &denorm, const char *BlobText, const char *FontName)

## Variables
char * | classify_font_name = kUnknownFontName
char | imagefile []

## Macro Definition Documentation

#define MAXFILENAME 80

Include Files and Type Defines —————————————————————————-

Definition at line 33 of file blobclass.cpp.

#define MAXMATCHES 10

Definition at line 34 of file blobclass.cpp.

#define TRAIN_SUFFIX ".tr"

## Function Documentation

void LearnBlob | ( | const FEATURE_DEFS_STRUCT & | FeatureDefs,
|  | const STRING & | filename,
|  | TBLOB * | Blob,
|  | const DENORM & | denorm,
|  | const char * | BlobText
| ) |  |

Public Code —————————————————————————-

Definition at line 52 of file blobclass.cpp.

{
/*
** Parameters:
** Blob blob whose micro-features are to be learned
** Row row of text that blob came from
** BlobText text that corresponds to blob
** TextLength number of characters in blob
** Globals:
** imagefile base filename of the page being learned
** classify_font_name
** name of font currently being trained on
** Operation:
** Extract micro-features from the specified blob and append
** them to the appropriate file.
** Return: none
** Exceptions: none
** History: 7/28/89, DSJ, Created.
*/
#define TRAIN_SUFFIX ".tr"
static FILE *FeatureFile = NULL;
STRING Filename(filename);
// If no fontname was set, try to extract it from the filename
STRING CurrFontName = classify_font_name;
if (CurrFontName == kUnknownFontName) {
// filename is expected to be of the form [lang].[fontname].exp[num]
// The [lang], [fontname] and [num] fields should not have '.' characters.
const char *basename = strrchr(filename.string(), '/');
const char *firstdot = strchr(basename ? basename : filename.string(), '.');
const char *lastdot = strrchr(filename.string(), '.');
if (firstdot != lastdot && firstdot != NULL && lastdot != NULL) {
++firstdot;
CurrFontName = firstdot;
CurrFontName[lastdot - firstdot] = '\0';
}
}
// if a feature file is not yet open, open it
// the name of the file is the name of the image plus TRAIN_SUFFIX
if (FeatureFile == NULL) {
Filename += TRAIN_SUFFIX;
FeatureFile = Efopen(Filename.string(), "wb");
cprintf("TRAINING ... Font name = %s\n", CurrFontName.string());
}
LearnBlob(FeatureDefs, FeatureFile, Blob, denorm, BlobText,
CurrFontName.string());
} // LearnBlob

void LearnBlob | ( | const FEATURE_DEFS_STRUCT & | FeatureDefs,
|  | FILE * | FeatureFile,
|  | TBLOB * | Blob,
|  | const DENORM & | denorm,
|  | const char * | BlobText,
|  | const char * | FontName
| ) |  |

Definition at line 102 of file blobclass.cpp.

{
CHAR_DESC CharDesc;
ASSERT_HOST(FeatureFile != NULL);
CharDesc = ExtractBlobFeatures(FeatureDefs, denorm, Blob);
if (CharDesc == NULL) {
cprintf("LearnBLob: CharDesc was NULL. Aborting.\n");
return;
}
if (ValidCharDescription(FeatureDefs, CharDesc)) {
// label the features with a class name and font name
fprintf(FeatureFile, "\n%s %s\n", FontName, BlobText);
// write micro-features to file and clean up
WriteCharDescription(FeatureDefs, FeatureFile, CharDesc);
} else {
tprintf("Blob learned was invalid!\n");
}
FreeCharDescription(CharDesc);
} // LearnBlob

## Variable Documentation

char* classify_font_name = kUnknownFontName

"Default font name to be used in training"

Definition at line 39 of file blobclass.cpp.

char imagefile[]

Global Data Definitions and Declarations —————————————————————————-