tesseract::ImageThresholder Class Reference

#include <thresholder.h>

List of all members.

Public Member Functions

 ImageThresholder ()
virtual ~ImageThresholder ()
virtual void Clear ()
 Destroy the Pix if there is one, freeing memory.
bool IsEmpty () const
 Return true if no image has been set.
void SetImage (const unsigned char *imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line)
void SetRectangle (int left, int top, int width, int height)
virtual void GetImageSizes (int *left, int *top, int *width, int *height, int *imagewidth, int *imageheight)
virtual bool HasThresholdToPix () const
bool IsColor () const
 Return true if the source image is color.
virtual void ThresholdToIMAGE (IMAGE *image)

Protected Member Functions

virtual void Init ()
 Common initialization shared between SetImage methods.
bool IsFullImage () const
 Return true if we are processing the full image.
void OtsuThresholdRectToIMAGE (const unsigned char *imagedata, int bytes_per_pixel, int bytes_per_line, IMAGE *image) const
void ThresholdRectToIMAGE (const unsigned char *imagedata, int bytes_per_pixel, int bytes_per_line, const int *thresholds, const int *hi_values, IMAGE *image) const
void CopyBinaryRectRawToIMAGE (IMAGE *image) const

Protected Attributes

const unsigned char * image_data_
 Exactly one of pix_ and image_data_ is not NULL.
int image_width_
int image_height_
int image_bytespp_
int image_bytespl_
int rect_left_
int rect_top_
int rect_width_
int rect_height_

Detailed Description

Base class for all tesseract image thresholding classes. Specific classes can add new thresholding methods by overriding ThresholdToIMAGE and/or ThresholdToPix. Each instance deals with a single image, but the design is intended to be useful for multiple calls to SetRectangle and ThresholdTo* if desired.


Constructor & Destructor Documentation

tesseract::ImageThresholder::ImageThresholder (  ) 
tesseract::ImageThresholder::~ImageThresholder (  )  [virtual]

Member Function Documentation

void tesseract::ImageThresholder::Clear (  )  [virtual]

Destroy the Pix if there is one, freeing memory.

void tesseract::ImageThresholder::CopyBinaryRectRawToIMAGE ( IMAGE image  )  const [protected]

Cut out the requested rectangle of the source raw binary image to the output IMAGE.

void tesseract::ImageThresholder::GetImageSizes ( int *  left,
int *  top,
int *  width,
int *  height,
int *  imagewidth,
int *  imageheight 
) [virtual]

Get enough parameters to be able to rebuild bounding boxes in the original image (not just within the rectangle). Left and top are enough with top-down coordinates, but the height of the rectangle and the image are needed for bottom-up.

bool tesseract::ImageThresholder::HasThresholdToPix (  )  const [virtual]

Return true if HAVE_LIBLEPT and this thresholder implements the Pix interface.

void tesseract::ImageThresholder::Init (  )  [protected, virtual]

Common initialization shared between SetImage methods.

bool tesseract::ImageThresholder::IsColor (  )  const [inline]

Return true if the source image is color.

bool tesseract::ImageThresholder::IsEmpty (  )  const

Return true if no image has been set.

bool tesseract::ImageThresholder::IsFullImage (  )  const [inline, protected]

Return true if we are processing the full image.

void tesseract::ImageThresholder::OtsuThresholdRectToIMAGE ( const unsigned char *  imagedata,
int  bytes_per_pixel,
int  bytes_per_line,
IMAGE image 
) const [protected]

Otsu threshold the rectangle, taking everything except the image buffer pointer from the class, to the output IMAGE.

void tesseract::ImageThresholder::SetImage ( const unsigned char *  imagedata,
int  width,
int  height,
int  bytes_per_pixel,
int  bytes_per_line 
)

SetImage makes a copy of only the metadata, not the underlying image buffer. It promises to treat the source as read-only in either case, but in return assumes that the Pix or image buffer remain valid throughout the life of the ImageThresholder. Greyscale of 8 and color of 24 or 32 bits per pixel may be given. Palette color images will not work properly and must be converted to 24 bit. Binary images of 1 bit per pixel may also be given but they must be byte packed with the MSB of the first byte being the first pixel, and a one pixel is WHITE. For binary images set bytes_per_pixel=0.

void tesseract::ImageThresholder::SetRectangle ( int  left,
int  top,
int  width,
int  height 
)

Store the coordinates of the rectangle to process for later use. Doesn't actually do any thresholding.

void tesseract::ImageThresholder::ThresholdRectToIMAGE ( const unsigned char *  imagedata,
int  bytes_per_pixel,
int  bytes_per_line,
const int *  thresholds,
const int *  hi_values,
IMAGE image 
) const [protected]

Threshold the rectangle, taking everything except the image buffer pointer from the class, using thresholds/hi_values to the output IMAGE.

void tesseract::ImageThresholder::ThresholdToIMAGE ( IMAGE image  )  [virtual]

Threshold the source image as efficiently as possible to the output tesseract IMAGE class.


Member Data Documentation

const unsigned char* tesseract::ImageThresholder::image_data_ [protected]

Exactly one of pix_ and image_data_ is not NULL.


The documentation for this class was generated from the following files:
Generated on Sun Jul 18 17:11:22 2010 for Tesseract by  doxygen 1.6.3