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

#include <blobbox.h>

Inheritance diagram for TO_BLOCK:
ELIST_LINK

Public Member Functions

 TO_BLOCK ()
 
 TO_BLOCK (BLOCK *src_block)
 
 ~TO_BLOCK ()
 
void clear ()
 
TO_ROW_LIST * get_rows ()
 
void rotate (const FCOORD &rotation)
 
void print_rows ()
 
void ReSetAndReFilterBlobs ()
 
void DeleteUnownedNoise ()
 
void plot_noise_blobs (ScrollView *to_win)
 
void plot_graded_blobs (ScrollView *to_win)
 
- Public Member Functions inherited from ELIST_LINK
 ELIST_LINK ()
 
 ELIST_LINK (const ELIST_LINK &)
 
void operator= (const ELIST_LINK &)
 

Public Attributes

BLOBNBOX_LIST blobs
 
BLOBNBOX_LIST underlines
 
BLOBNBOX_LIST noise_blobs
 
BLOBNBOX_LIST small_blobs
 
BLOBNBOX_LIST large_blobs
 
BLOCKblock
 
PITCH_TYPE pitch_decision
 
float line_spacing
 
float line_size
 
float max_blob_size
 
float baseline_offset
 
float xheight
 
float fixed_pitch
 
float kern_size
 
float space_size
 
inT32 min_space
 
inT32 max_nonspace
 
float fp_space
 
float fp_nonsp
 
float pr_space
 
float pr_nonsp
 
TO_ROWkey_row
 

Detailed Description

Definition at line 664 of file blobbox.h.

Constructor & Destructor Documentation

TO_BLOCK::TO_BLOCK ( )
inline

Definition at line 667 of file blobbox.h.

668  clear();
669  } //empty
void clear()
Definition: blobbox.cpp:885
PITCH_TYPE pitch_decision
Definition: blobbox.h:741
TO_BLOCK::TO_BLOCK ( BLOCK src_block)

Definition at line 862 of file blobbox.cpp.

864  {
865  clear();
866  block = src_block;
867 }
void clear()
Definition: blobbox.cpp:885
BLOCK * block
Definition: blobbox.h:740
TO_BLOCK::~TO_BLOCK ( )

Definition at line 906 of file blobbox.cpp.

906  {
907  // Any residual BLOBNBOXes at this stage own their blobs, so delete them.
908  clear_blobnboxes(&blobs);
909  clear_blobnboxes(&underlines);
910  clear_blobnboxes(&noise_blobs);
911  clear_blobnboxes(&small_blobs);
912  clear_blobnboxes(&large_blobs);
913 }
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:737
BLOBNBOX_LIST blobs
Definition: blobbox.h:735
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:738
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:739
BLOBNBOX_LIST underlines
Definition: blobbox.h:736

Member Function Documentation

void TO_BLOCK::clear ( )

Definition at line 885 of file blobbox.cpp.

885  {
886  block = NULL;
888  line_spacing = 0.0;
889  line_size = 0.0;
890  max_blob_size = 0.0;
891  baseline_offset = 0.0;
892  xheight = 0.0;
893  fixed_pitch = 0.0;
894  kern_size = 0.0;
895  space_size = 0.0;
896  min_space = 0;
897  max_nonspace = 0;
898  fp_space = 0.0;
899  fp_nonsp = 0.0;
900  pr_space = 0.0;
901  pr_nonsp = 0.0;
902  key_row = NULL;
903 }
TO_ROW * key_row
Definition: blobbox.h:761
float pr_space
Definition: blobbox.h:759
float line_size
Definition: blobbox.h:748
float xheight
Definition: blobbox.h:751
#define NULL
Definition: host.h:144
float baseline_offset
Definition: blobbox.h:750
float line_spacing
Definition: blobbox.h:742
float pr_nonsp
Definition: blobbox.h:760
float max_blob_size
Definition: blobbox.h:749
float fp_space
Definition: blobbox.h:757
PITCH_TYPE pitch_decision
Definition: blobbox.h:741
float space_size
Definition: blobbox.h:754
float kern_size
Definition: blobbox.h:753
BLOCK * block
Definition: blobbox.h:740
inT32 min_space
Definition: blobbox.h:755
float fp_nonsp
Definition: blobbox.h:758
float fixed_pitch
Definition: blobbox.h:752
inT32 max_nonspace
Definition: blobbox.h:756
void TO_BLOCK::DeleteUnownedNoise ( )

Definition at line 978 of file blobbox.cpp.

978  {
987 }
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:737
BLOBNBOX_LIST blobs
Definition: blobbox.h:735
static void DeleteNoiseBlobs(BLOBNBOX_LIST *blobs)
Definition: blobbox.cpp:354
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:738
void CleanNeighbours()
Definition: blobbox.cpp:205
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:739
TO_ROW_LIST* TO_BLOCK::get_rows ( )
inline

Definition at line 676 of file blobbox.h.

676  { //access function
677  return &row_list;
678  }
void TO_BLOCK::plot_graded_blobs ( ScrollView to_win)

Definition at line 999 of file blobbox.cpp.

999  {
1002  win);
1004  win);
1006 }
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:737
BLOBNBOX_LIST blobs
Definition: blobbox.h:735
static void PlotBlobs(BLOBNBOX_LIST *list, ScrollView::Color body_colour, ScrollView::Color child_colour, ScrollView *win)
Definition: blobbox.cpp:368
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:738
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:739
void TO_BLOCK::plot_noise_blobs ( ScrollView to_win)

Definition at line 991 of file blobbox.cpp.

991  {
996 }
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:737
BLOBNBOX_LIST blobs
Definition: blobbox.h:735
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:738
static void PlotNoiseBlobs(BLOBNBOX_LIST *list, ScrollView::Color body_colour, ScrollView::Color child_colour, ScrollView *win)
Definition: blobbox.cpp:381
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:739
void TO_BLOCK::print_rows ( )
inline

Definition at line 706 of file blobbox.h.

706  { //debug info
707  TO_ROW_IT row_it = &row_list;
708  TO_ROW *row;
709 
710  for (row_it.mark_cycle_pt (); !row_it.cycled_list ();
711  row_it.forward ()) {
712  row = row_it.data ();
713  printf ("Row range (%g,%g), para_c=%g, blobcount=" INT32FORMAT
714  "\n", row->min_y (), row->max_y (), row->parallel_c (),
715  row->blob_list ()->length ());
716  }
717  }
float parallel_c() const
Definition: blobbox.h:551
float min_y() const
Definition: blobbox.h:533
#define INT32FORMAT
Definition: host.h:115
float max_y() const
Definition: blobbox.h:530
BLOBNBOX_LIST * blob_list()
Definition: blobbox.h:571
void TO_BLOCK::ReSetAndReFilterBlobs ( )

Definition at line 952 of file blobbox.cpp.

952  {
953  int min_height = IntCastRounded(kMinMediumSizeRatio * line_size);
954  int max_height = IntCastRounded(kMaxMediumSizeRatio * line_size);
955  BLOBNBOX_LIST noise_list;
956  BLOBNBOX_LIST small_list;
957  BLOBNBOX_LIST medium_list;
958  BLOBNBOX_LIST large_list;
959  SizeFilterBlobs(min_height, max_height, &blobs,
960  &noise_list, &small_list, &medium_list, &large_list);
961  SizeFilterBlobs(min_height, max_height, &large_blobs,
962  &noise_list, &small_list, &medium_list, &large_list);
963  SizeFilterBlobs(min_height, max_height, &small_blobs,
964  &noise_list, &small_list, &medium_list, &large_list);
965  SizeFilterBlobs(min_height, max_height, &noise_blobs,
966  &noise_list, &small_list, &medium_list, &large_list);
967  BLOBNBOX_IT blob_it(&blobs);
968  blob_it.add_list_after(&medium_list);
969  blob_it.set_to_list(&large_blobs);
970  blob_it.add_list_after(&large_list);
971  blob_it.set_to_list(&small_blobs);
972  blob_it.add_list_after(&small_list);
973  blob_it.set_to_list(&noise_blobs);
974  blob_it.add_list_after(&noise_list);
975 }
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:737
int IntCastRounded(double x)
Definition: helpers.h:121
BLOBNBOX_LIST blobs
Definition: blobbox.h:735
float line_size
Definition: blobbox.h:748
const double kMaxMediumSizeRatio
Definition: blobbox.cpp:43
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:738
const double kMinMediumSizeRatio
Definition: blobbox.cpp:41
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:739
void TO_BLOCK::rotate ( const FCOORD rotation)
inline

Definition at line 682 of file blobbox.h.

682  {
683  BLOBNBOX_LIST* blobnbox_list[] = {&blobs, &underlines, &noise_blobs,
685  for (BLOBNBOX_LIST** list = blobnbox_list; *list != NULL; ++list) {
686  BLOBNBOX_IT it(*list);
687  for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
688  it.data()->rotate(rotation);
689  }
690  }
691  // Rotate the block
693  block->rotate(rotation);
694  // Update the median size statistic from the blobs list.
695  STATS widths(0, block->bounding_box().width());
696  STATS heights(0, block->bounding_box().height());
697  BLOBNBOX_IT blob_it(&blobs);
698  for (blob_it.mark_cycle_pt(); !blob_it.cycled_list(); blob_it.forward()) {
699  widths.add(blob_it.data()->bounding_box().width(), 1);
700  heights.add(blob_it.data()->bounding_box().height(), 1);
701  }
702  block->set_median_size(static_cast<int>(widths.median() + 0.5),
703  static_cast<int>(heights.median() + 0.5));
704  }
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:737
BLOBNBOX_LIST blobs
Definition: blobbox.h:735
#define NULL
Definition: host.h:144
void set_median_size(int x, int y)
Definition: ocrblock.h:160
POLY_BLOCK * poly_block() const
Definition: pdblock.h:62
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:738
void rotate(const FCOORD &rotation)
Definition: ocrblock.cpp:85
Definition: statistc.h:29
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:739
BLOBNBOX_LIST underlines
Definition: blobbox.h:736
#define ASSERT_HOST(x)
Definition: errcode.h:84
void bounding_box(ICOORD &bottom_left, ICOORD &top_right) const
get box
Definition: pdblock.h:70
BLOCK * block
Definition: blobbox.h:740

Member Data Documentation

float TO_BLOCK::baseline_offset

Definition at line 750 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::blobs

Definition at line 735 of file blobbox.h.

BLOCK* TO_BLOCK::block

Definition at line 740 of file blobbox.h.

float TO_BLOCK::fixed_pitch

Definition at line 752 of file blobbox.h.

float TO_BLOCK::fp_nonsp

Definition at line 758 of file blobbox.h.

float TO_BLOCK::fp_space

Definition at line 757 of file blobbox.h.

float TO_BLOCK::kern_size

Definition at line 753 of file blobbox.h.

TO_ROW* TO_BLOCK::key_row

Definition at line 761 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::large_blobs

Definition at line 739 of file blobbox.h.

float TO_BLOCK::line_size

Definition at line 748 of file blobbox.h.

float TO_BLOCK::line_spacing

Definition at line 742 of file blobbox.h.

float TO_BLOCK::max_blob_size

Definition at line 749 of file blobbox.h.

inT32 TO_BLOCK::max_nonspace

Definition at line 756 of file blobbox.h.

inT32 TO_BLOCK::min_space

Definition at line 755 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::noise_blobs

Definition at line 737 of file blobbox.h.

PITCH_TYPE TO_BLOCK::pitch_decision

Definition at line 741 of file blobbox.h.

float TO_BLOCK::pr_nonsp

Definition at line 760 of file blobbox.h.

float TO_BLOCK::pr_space

Definition at line 759 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::small_blobs

Definition at line 738 of file blobbox.h.

float TO_BLOCK::space_size

Definition at line 754 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::underlines

Definition at line 736 of file blobbox.h.

float TO_BLOCK::xheight

Definition at line 751 of file blobbox.h.


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