"Fossies" - the Fresh Open Source Software Archive

Member "tesseract-ocr/doc/html/classtesseract_1_1_tess_lang_mod_edge.html" (26 Oct 2012, 65540 Bytes) of package /linux/misc/old/tesseract-ocr-3.02.02-doc-html.tar.gz:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the tesseract-ocr-3.02.02-doc-html.tar.gz project site itself.

Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
tesseract::TessLangModEdge Class Reference

#include <tess_lang_mod_edge.h>

Inheritance diagram for tesseract::TessLangModEdge:
tesseract::LangModEdge

List of all members.

Public Member Functions

 TessLangModEdge (CubeRecoContext *cntxt, const Dawg *edge_array, EDGE_REF edge, int class_id)
 TessLangModEdge (CubeRecoContext *cntxt, const Dawg *edge_array, EDGE_REF start_edge_idx, EDGE_REF end_edge_idx, int class_id)
 TessLangModEdge (CubeRecoContext *cntxt, int class_id)
 ~TessLangModEdge ()
bool IsRoot () const
void SetRoot (bool flag)
bool IsOOD () const
bool IsNumber () const
bool IsEOW () const
const DawgGetDawg () const
EDGE_REF StartEdge () const
EDGE_REF EndEdge () const
EDGE_REF EdgeMask () const
const char_32EdgeString () const
int ClassID () const
int PathCost () const
void SetEdgeMask (EDGE_REF edge_mask)
void SetDawg (Dawg *dawg)
void SetStartEdge (EDGE_REF edge_idx)
void SetEndEdge (EDGE_REF edge_idx)
bool IsTerminal () const
int SignalCnt () const
double SignalWgt (int signal) const
void SetSignalWgt (int signal, double wgt)
int Signal (int signal)
unsigned int Hash () const
char * Description () const
bool IsIdentical (LangModEdge *lang_mod_edge) const
- Public Member Functions inherited from tesseract::LangModEdge
 LangModEdge ()
virtual ~LangModEdge ()

Static Public Member Functions

static int CreateChildren (CubeRecoContext *cntxt, const Dawg *edges, NODE_REF edge_reg, LangModEdge **lm_edges)

Detailed Description

Definition at line 68 of file tess_lang_mod_edge.h.


Constructor & Destructor Documentation

tesseract::TessLangModEdge::TessLangModEdge ( CubeRecoContext cntxt,
const Dawg edge_array,
EDGE_REF  edge,
int  class_id 
)

Definition at line 41 of file tess_lang_mod_edge.cpp.

{
root_ = false;
cntxt_ = cntxt;
dawg_ = dawg;
start_edge_ = edge_idx;
end_edge_ = edge_idx;
edge_mask_ = 0;
class_id_ = class_id;
str_ = cntxt_->CharacterSet()->ClassString(class_id);
path_cost_ = Cost();
}
tesseract::TessLangModEdge::TessLangModEdge ( CubeRecoContext cntxt,
const Dawg edge_array,
EDGE_REF  start_edge_idx,
EDGE_REF  end_edge_idx,
int  class_id 
)

Definition at line 55 of file tess_lang_mod_edge.cpp.

{
root_ = false;
cntxt_ = cntxt;
dawg_ = dawg;
start_edge_ = start_edge_idx;
end_edge_ = end_edge_idx;
edge_mask_ = 0;
class_id_ = class_id;
str_ = cntxt_->CharacterSet()->ClassString(class_id);
path_cost_ = Cost();
}
tesseract::TessLangModEdge::TessLangModEdge ( CubeRecoContext cntxt,
int  class_id 
)

Definition at line 28 of file tess_lang_mod_edge.cpp.

{
root_ = false;
cntxt_ = cntxt;
dawg_ = NULL;
start_edge_ = 0;
end_edge_ = 0;
edge_mask_ = 0;
class_id_ = class_id;
str_ = cntxt_->CharacterSet()->ClassString(class_id);
path_cost_ = Cost();
}
tesseract::TessLangModEdge::~TessLangModEdge ( )
inline

Definition at line 77 of file tess_lang_mod_edge.h.

{}

Member Function Documentation

int tesseract::TessLangModEdge::ClassID ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 102 of file tess_lang_mod_edge.h.

{ return class_id_; }
int tesseract::TessLangModEdge::CreateChildren ( CubeRecoContext cntxt,
const Dawg edges,
NODE_REF  edge_reg,
LangModEdge **  lm_edges 
)
static

Definition at line 104 of file tess_lang_mod_edge.cpp.

{
int edge_cnt = 0;
dawg->unichar_ids_of(parent_node, &vec); // find all children of the parent
for (int i = 0; i < vec.size(); ++i) {
const NodeChild &child = vec[i];
if (child.unichar_id == INVALID_UNICHAR_ID) continue;
edge_array[edge_cnt] =
new TessLangModEdge(cntxt, dawg, child.edge_ref, child.unichar_id);
if (edge_array[edge_cnt] != NULL) edge_cnt++;
}
return edge_cnt;
}
char * tesseract::TessLangModEdge::Description ( ) const
virtual

Implements tesseract::LangModEdge.

Definition at line 69 of file tess_lang_mod_edge.cpp.

{
char *char_ptr = new char[256];
if (!char_ptr) {
return NULL;
}
char dawg_str[256];
char edge_str[32];
if (dawg_ == (Dawg *)DAWG_OOD) {
strcpy(dawg_str, "OOD");
} else if (dawg_ == (Dawg *)DAWG_NUMBER) {
strcpy(dawg_str, "NUM");
} else if (dawg_->permuter() == SYSTEM_DAWG_PERM) {
strcpy(dawg_str, "Main");
} else if (dawg_->permuter() == USER_DAWG_PERM) {
strcpy(dawg_str, "User");
} else if (dawg_->permuter() == DOC_DAWG_PERM) {
strcpy(dawg_str, "Doc");
} else {
strcpy(dawg_str, "N/A");
}
sprintf(edge_str, "%d", static_cast<int>(start_edge_));
if (IsLeadingPuncEdge(edge_mask_)) {
strcat(edge_str, "-LP");
}
if (IsTrailingPuncEdge(edge_mask_)) {
strcat(edge_str, "-TP");
}
sprintf(char_ptr, "%s(%s)%s, Wtd Dawg Cost=%d",
dawg_str, edge_str, IsEOW() ? "-EOW-" : "", path_cost_);
return char_ptr;
}
EDGE_REF tesseract::TessLangModEdge::EdgeMask ( ) const
inline

Definition at line 100 of file tess_lang_mod_edge.h.

{ return edge_mask_; }
const char_32* tesseract::TessLangModEdge::EdgeString ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 101 of file tess_lang_mod_edge.h.

{ return str_; }
EDGE_REF tesseract::TessLangModEdge::EndEdge ( ) const
inline

Definition at line 99 of file tess_lang_mod_edge.h.

{ return end_edge_; }
const Dawg* tesseract::TessLangModEdge::GetDawg ( ) const
inline

Definition at line 97 of file tess_lang_mod_edge.h.

{ return dawg_; }
unsigned int tesseract::TessLangModEdge::Hash ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 178 of file tess_lang_mod_edge.h.

{
return static_cast<unsigned int>(((start_edge_ | end_edge_) ^
((reinterpret_cast<unsigned long int>(dawg_)))) ^
((unsigned int)edge_mask_) ^
class_id_);
}
bool tesseract::TessLangModEdge::IsEOW ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 93 of file tess_lang_mod_edge.h.

{
return (IsTerminal() || (dawg_->end_of_word(end_edge_) != 0));
}
bool tesseract::TessLangModEdge::IsIdentical ( LangModEdge lang_mod_edge) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 189 of file tess_lang_mod_edge.h.

{
return (class_id_ ==
reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->class_id_ &&
str_ == reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->str_ &&
dawg_ == reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->dawg_ &&
start_edge_ ==
reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->start_edge_ &&
end_edge_ ==
reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->end_edge_ &&
edge_mask_ ==
reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->edge_mask_);
}
bool tesseract::TessLangModEdge::IsNumber ( ) const
inline

Definition at line 89 of file tess_lang_mod_edge.h.

{
return (dawg_ == (Dawg *)DAWG_NUMBER);
}
bool tesseract::TessLangModEdge::IsOOD ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 85 of file tess_lang_mod_edge.h.

{
return (dawg_ == (Dawg *)DAWG_OOD);
}
bool tesseract::TessLangModEdge::IsRoot ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 80 of file tess_lang_mod_edge.h.

{
return root_;
}
bool tesseract::TessLangModEdge::IsTerminal ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 112 of file tess_lang_mod_edge.h.

{
return (IsOOD() || IsNumber() || IsTrailingPuncEdge(start_edge_) ||
dawg_->next_node(end_edge_) == 0);
}
int tesseract::TessLangModEdge::PathCost ( ) const
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 103 of file tess_lang_mod_edge.h.

{ return path_cost_; }
void tesseract::TessLangModEdge::SetDawg ( Dawg dawg)
inline

Definition at line 105 of file tess_lang_mod_edge.h.

{ dawg_ = dawg; }
void tesseract::TessLangModEdge::SetEdgeMask ( EDGE_REF  edge_mask)
inline

Definition at line 104 of file tess_lang_mod_edge.h.

{ edge_mask_ = edge_mask; }
void tesseract::TessLangModEdge::SetEndEdge ( EDGE_REF  edge_idx)
inline

Definition at line 107 of file tess_lang_mod_edge.h.

{ end_edge_ = edge_idx; }
void tesseract::TessLangModEdge::SetRoot ( bool  flag)
inlinevirtual

Implements tesseract::LangModEdge.

Definition at line 83 of file tess_lang_mod_edge.h.

{ root_ = flag; }
void tesseract::TessLangModEdge::SetSignalWgt ( int  signal,
double  wgt 
)
inline

Definition at line 144 of file tess_lang_mod_edge.h.

{
CubeTuningParams *params =
reinterpret_cast<CubeTuningParams *>(cntxt_->Params());
if (params != NULL) {
switch (signal) {
case 0:
params->SetOODWgt(wgt);
break;
case 1:
params->SetNumWgt(wgt);
break;
}
}
}
void tesseract::TessLangModEdge::SetStartEdge ( EDGE_REF  edge_idx)
inline

Definition at line 106 of file tess_lang_mod_edge.h.

{ start_edge_ = edge_idx; }
int tesseract::TessLangModEdge::Signal ( int  signal)
inline

Definition at line 161 of file tess_lang_mod_edge.h.

{
switch (signal) {
case 0:
return IsOOD() ? MIN_PROB_COST : 0;
break;
case 1:
return IsNumber() ? MIN_PROB_COST : 0;
break;
default:
return 0;
}
}
int tesseract::TessLangModEdge::SignalCnt ( ) const
inline

Definition at line 120 of file tess_lang_mod_edge.h.

{
return 2;
}
double tesseract::TessLangModEdge::SignalWgt ( int  signal) const
inline

Definition at line 125 of file tess_lang_mod_edge.h.

{
CubeTuningParams *params =
reinterpret_cast<CubeTuningParams *>(cntxt_->Params());
if (params != NULL) {
switch (signal) {
case 0:
return params->OODWgt();
break;
case 1:
return params->NumWgt();
break;
}
}
return 0.0;
}
EDGE_REF tesseract::TessLangModEdge::StartEdge ( ) const
inline

Definition at line 98 of file tess_lang_mod_edge.h.

{ return start_edge_; }

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