All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules 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 ComputeEdgeOffsets (Pix *thresholds, Pix *grey)
 
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 688 of file blobbox.h.

Constructor & Destructor Documentation

TO_BLOCK::TO_BLOCK ( )
inline

Definition at line 691 of file blobbox.h.

692  clear();
693  } //empty
PITCH_TYPE pitch_decision
Definition: blobbox.h:774
void clear()
Definition: blobbox.cpp:938
TO_BLOCK::TO_BLOCK ( BLOCK src_block)

Definition at line 915 of file blobbox.cpp.

917  {
918  clear();
919  block = src_block;
920 }
void clear()
Definition: blobbox.cpp:938
BLOCK * block
Definition: blobbox.h:773
TO_BLOCK::~TO_BLOCK ( )

Definition at line 959 of file blobbox.cpp.

959  {
960  // Any residual BLOBNBOXes at this stage own their blobs, so delete them.
961  clear_blobnboxes(&blobs);
962  clear_blobnboxes(&underlines);
963  clear_blobnboxes(&noise_blobs);
964  clear_blobnboxes(&small_blobs);
965  clear_blobnboxes(&large_blobs);
966 }
BLOBNBOX_LIST underlines
Definition: blobbox.h:769
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:771
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:770
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:772
BLOBNBOX_LIST blobs
Definition: blobbox.h:768

Member Function Documentation

void TO_BLOCK::clear ( )

Definition at line 938 of file blobbox.cpp.

938  {
939  block = NULL;
941  line_spacing = 0.0;
942  line_size = 0.0;
943  max_blob_size = 0.0;
944  baseline_offset = 0.0;
945  xheight = 0.0;
946  fixed_pitch = 0.0;
947  kern_size = 0.0;
948  space_size = 0.0;
949  min_space = 0;
950  max_nonspace = 0;
951  fp_space = 0.0;
952  fp_nonsp = 0.0;
953  pr_space = 0.0;
954  pr_nonsp = 0.0;
955  key_row = NULL;
956 }
PITCH_TYPE pitch_decision
Definition: blobbox.h:774
TO_ROW * key_row
Definition: blobbox.h:794
float space_size
Definition: blobbox.h:787
float fixed_pitch
Definition: blobbox.h:785
float fp_nonsp
Definition: blobbox.h:791
float xheight
Definition: blobbox.h:784
float kern_size
Definition: blobbox.h:786
float pr_nonsp
Definition: blobbox.h:793
float baseline_offset
Definition: blobbox.h:783
inT32 min_space
Definition: blobbox.h:788
float line_spacing
Definition: blobbox.h:775
float pr_space
Definition: blobbox.h:792
#define NULL
Definition: host.h:144
inT32 max_nonspace
Definition: blobbox.h:789
float max_blob_size
Definition: blobbox.h:782
BLOCK * block
Definition: blobbox.h:773
float line_size
Definition: blobbox.h:781
float fp_space
Definition: blobbox.h:790
void TO_BLOCK::ComputeEdgeOffsets ( Pix *  thresholds,
Pix *  grey 
)

Definition at line 1049 of file blobbox.cpp.

1049  {
1050  BLOBNBOX::ComputeEdgeOffsets(thresholds, grey, &blobs);
1051  BLOBNBOX::ComputeEdgeOffsets(thresholds, grey, &small_blobs);
1052  BLOBNBOX::ComputeEdgeOffsets(thresholds, grey, &noise_blobs);
1053 }
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:771
static void ComputeEdgeOffsets(Pix *thresholds, Pix *grey, BLOBNBOX_LIST *blobs)
Definition: blobbox.cpp:378
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:770
BLOBNBOX_LIST blobs
Definition: blobbox.h:768
void TO_BLOCK::DeleteUnownedNoise ( )

Definition at line 1031 of file blobbox.cpp.

1031  {
1040 }
void CleanNeighbours()
Definition: blobbox.cpp:207
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:771
static void DeleteNoiseBlobs(BLOBNBOX_LIST *blobs)
Definition: blobbox.cpp:365
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:770
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:772
BLOBNBOX_LIST blobs
Definition: blobbox.h:768
TO_ROW_LIST* TO_BLOCK::get_rows ( )
inline

Definition at line 700 of file blobbox.h.

700  { //access function
701  return &row_list;
702  }
void TO_BLOCK::plot_graded_blobs ( ScrollView to_win)

Definition at line 1065 of file blobbox.cpp.

1065  {
1068  win);
1070  win);
1072 }
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:771
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:770
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:772
static void PlotBlobs(BLOBNBOX_LIST *list, ScrollView::Color body_colour, ScrollView::Color child_colour, ScrollView *win)
Definition: blobbox.cpp:412
BLOBNBOX_LIST blobs
Definition: blobbox.h:768
void TO_BLOCK::plot_noise_blobs ( ScrollView to_win)

Definition at line 1057 of file blobbox.cpp.

1057  {
1062 }
static void PlotNoiseBlobs(BLOBNBOX_LIST *list, ScrollView::Color body_colour, ScrollView::Color child_colour, ScrollView *win)
Definition: blobbox.cpp:425
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:771
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:770
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:772
BLOBNBOX_LIST blobs
Definition: blobbox.h:768
void TO_BLOCK::print_rows ( )
inline

Definition at line 730 of file blobbox.h.

730  { //debug info
731  TO_ROW_IT row_it = &row_list;
732  TO_ROW *row;
733 
734  for (row_it.mark_cycle_pt(); !row_it.cycled_list();
735  row_it.forward()) {
736  row = row_it.data();
737  tprintf("Row range (%g,%g), para_c=%g, blobcount=" INT32FORMAT
738  "\n", row->min_y(), row->max_y(), row->parallel_c(),
739  row->blob_list()->length());
740  }
741  }
float parallel_c() const
Definition: blobbox.h:575
#define tprintf(...)
Definition: tprintf.h:31
#define INT32FORMAT
Definition: host.h:115
BLOBNBOX_LIST * blob_list()
Definition: blobbox.h:595
float min_y() const
Definition: blobbox.h:557
float max_y() const
Definition: blobbox.h:554
void TO_BLOCK::ReSetAndReFilterBlobs ( )

Definition at line 1005 of file blobbox.cpp.

1005  {
1006  int min_height = IntCastRounded(kMinMediumSizeRatio * line_size);
1007  int max_height = IntCastRounded(kMaxMediumSizeRatio * line_size);
1008  BLOBNBOX_LIST noise_list;
1009  BLOBNBOX_LIST small_list;
1010  BLOBNBOX_LIST medium_list;
1011  BLOBNBOX_LIST large_list;
1012  SizeFilterBlobs(min_height, max_height, &blobs,
1013  &noise_list, &small_list, &medium_list, &large_list);
1014  SizeFilterBlobs(min_height, max_height, &large_blobs,
1015  &noise_list, &small_list, &medium_list, &large_list);
1016  SizeFilterBlobs(min_height, max_height, &small_blobs,
1017  &noise_list, &small_list, &medium_list, &large_list);
1018  SizeFilterBlobs(min_height, max_height, &noise_blobs,
1019  &noise_list, &small_list, &medium_list, &large_list);
1020  BLOBNBOX_IT blob_it(&blobs);
1021  blob_it.add_list_after(&medium_list);
1022  blob_it.set_to_list(&large_blobs);
1023  blob_it.add_list_after(&large_list);
1024  blob_it.set_to_list(&small_blobs);
1025  blob_it.add_list_after(&small_list);
1026  blob_it.set_to_list(&noise_blobs);
1027  blob_it.add_list_after(&noise_list);
1028 }
const double kMinMediumSizeRatio
Definition: blobbox.cpp:43
const double kMaxMediumSizeRatio
Definition: blobbox.cpp:45
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:771
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:770
int IntCastRounded(double x)
Definition: helpers.h:172
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:772
float line_size
Definition: blobbox.h:781
BLOBNBOX_LIST blobs
Definition: blobbox.h:768
void TO_BLOCK::rotate ( const FCOORD rotation)
inline

Definition at line 706 of file blobbox.h.

706  {
707  BLOBNBOX_LIST* blobnbox_list[] = {&blobs, &underlines, &noise_blobs,
709  for (BLOBNBOX_LIST** list = blobnbox_list; *list != NULL; ++list) {
710  BLOBNBOX_IT it(*list);
711  for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
712  it.data()->rotate(rotation);
713  }
714  }
715  // Rotate the block
717  block->rotate(rotation);
718  // Update the median size statistic from the blobs list.
719  STATS widths(0, block->bounding_box().width());
720  STATS heights(0, block->bounding_box().height());
721  BLOBNBOX_IT blob_it(&blobs);
722  for (blob_it.mark_cycle_pt(); !blob_it.cycled_list(); blob_it.forward()) {
723  widths.add(blob_it.data()->bounding_box().width(), 1);
724  heights.add(blob_it.data()->bounding_box().height(), 1);
725  }
726  block->set_median_size(static_cast<int>(widths.median() + 0.5),
727  static_cast<int>(heights.median() + 0.5));
728  }
void set_median_size(int x, int y)
Definition: ocrblock.h:159
Definition: statistc.h:33
BLOBNBOX_LIST underlines
Definition: blobbox.h:769
#define ASSERT_HOST(x)
Definition: errcode.h:84
BLOBNBOX_LIST small_blobs
Definition: blobbox.h:771
void bounding_box(ICOORD &bottom_left, ICOORD &top_right) const
get box
Definition: pdblock.h:67
BLOBNBOX_LIST noise_blobs
Definition: blobbox.h:770
void rotate(const FCOORD &rotation)
Definition: ocrblock.cpp:84
#define NULL
Definition: host.h:144
POLY_BLOCK * poly_block() const
Definition: pdblock.h:59
BLOBNBOX_LIST large_blobs
Definition: blobbox.h:772
BLOCK * block
Definition: blobbox.h:773
BLOBNBOX_LIST blobs
Definition: blobbox.h:768

Member Data Documentation

float TO_BLOCK::baseline_offset

Definition at line 783 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::blobs

Definition at line 768 of file blobbox.h.

BLOCK* TO_BLOCK::block

Definition at line 773 of file blobbox.h.

float TO_BLOCK::fixed_pitch

Definition at line 785 of file blobbox.h.

float TO_BLOCK::fp_nonsp

Definition at line 791 of file blobbox.h.

float TO_BLOCK::fp_space

Definition at line 790 of file blobbox.h.

float TO_BLOCK::kern_size

Definition at line 786 of file blobbox.h.

TO_ROW* TO_BLOCK::key_row

Definition at line 794 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::large_blobs

Definition at line 772 of file blobbox.h.

float TO_BLOCK::line_size

Definition at line 781 of file blobbox.h.

float TO_BLOCK::line_spacing

Definition at line 775 of file blobbox.h.

float TO_BLOCK::max_blob_size

Definition at line 782 of file blobbox.h.

inT32 TO_BLOCK::max_nonspace

Definition at line 789 of file blobbox.h.

inT32 TO_BLOCK::min_space

Definition at line 788 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::noise_blobs

Definition at line 770 of file blobbox.h.

PITCH_TYPE TO_BLOCK::pitch_decision

Definition at line 774 of file blobbox.h.

float TO_BLOCK::pr_nonsp

Definition at line 793 of file blobbox.h.

float TO_BLOCK::pr_space

Definition at line 792 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::small_blobs

Definition at line 771 of file blobbox.h.

float TO_BLOCK::space_size

Definition at line 787 of file blobbox.h.

BLOBNBOX_LIST TO_BLOCK::underlines

Definition at line 769 of file blobbox.h.

float TO_BLOCK::xheight

Definition at line 784 of file blobbox.h.


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