Tesseract  3.02
tesseract-ocr/classify/speckle.h File Reference
#include "baseline.h"
#include "ratngs.h"

Go to the source code of this file.

Functions

void AddLargeSpeckleTo (BLOB_CHOICE_LIST *Choices)
BOOL8 LargeSpeckle (TBLOB *Blob)

Function Documentation

void AddLargeSpeckleTo ( BLOB_CHOICE_LIST *  Choices)

This routine adds a null choice to Choices with a rating equal to the worst rating in Choices plus a pad. The certainty of the new choice is the same as the certainty of the worst choice in Choices. The new choice is added to the end of Choices.

Globals:

Parameters:
Choiceschoices to add a speckle choice to
Returns:
New Choices list with null choice added to end.

Exceptions: none History: Mon Mar 11 11:08:11 1991, DSJ, Created.

Definition at line 62 of file speckle.cpp.

                                                  {
  assert(Choices != NULL);
  BLOB_CHOICE *blob_choice;
  BLOB_CHOICE_IT temp_it;
  temp_it.set_to_list(Choices);

  // If there are no other choices, use the small speckle penalty plus
  // the large speckle penalty.
  if (Choices->length() == 0) {
    blob_choice =
      new BLOB_CHOICE(0, speckle_small_certainty + speckle_large_penalty,
                      speckle_small_certainty, -1, -1, NULL, 0, 0, false);
    temp_it.add_to_end(blob_choice);
    return;
  }

  // If there are other choices,  add a null choice that is slightly worse
  // than the worst choice so far.
  temp_it.move_to_last();
  blob_choice = temp_it.data();  // pick the worst choice
  temp_it.add_to_end(
      new BLOB_CHOICE(0, blob_choice->rating() + speckle_large_penalty,
                      blob_choice->certainty(), -1, -1, NULL, 0, 0, false));
}                                /* AddLargeSpeckleTo */
BOOL8 LargeSpeckle ( TBLOB blob)

This routine returns TRUE if both the width of height of Blob are less than the MaxLargeSpeckleSize.

Globals:

Exceptions: none History: Mon Mar 11 10:06:49 1991, DSJ, Created.

Parameters:
blobblob to test against speckle criteria
Returns:
TRUE if blob is speckle, FALSE otherwise.

Definition at line 103 of file speckle.cpp.

                                {
  double speckle_size = BASELINE_SCALE * speckle_large_max_size;
  TBOX bbox = blob->bounding_box();
  return (bbox.width() < speckle_size && bbox.height() < speckle_size);
}                                /* LargeSpeckle */