mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-18 19:39:24 +08:00
64 lines
2.2 KiB
C
64 lines
2.2 KiB
C
|
///////////////////////////////////////////////////////////////////////
|
||
|
// File: strokewidth.h
|
||
|
// Description: Subclass of BBGrid to find uniformity of strokewidth.
|
||
|
// Author: Ray Smith
|
||
|
// Created: Mon Mar 31 16:17:01 PST 2008
|
||
|
//
|
||
|
// (C) Copyright 2008, Google Inc.
|
||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
// you may not use this file except in compliance with the License.
|
||
|
// You may obtain a copy of the License at
|
||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
// See the License for the specific language governing permissions and
|
||
|
// limitations under the License.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef TESSERACT_TEXTORD_STROKEWIDTH_H__
|
||
|
#define TESSERACT_TEXTORD_STROKEWIDTH_H__
|
||
|
|
||
|
#include "bbgrid.h" // Base class.
|
||
|
#include "tabvector.h" // For BLOBNBOX_CLIST.
|
||
|
|
||
|
class TO_BLOCK;
|
||
|
class ScrollView;
|
||
|
|
||
|
namespace tesseract {
|
||
|
|
||
|
class TabFind;
|
||
|
|
||
|
// The StrokeWidth class holds all the normal and large blobs.
|
||
|
// It is used to find good large blobs and move them to the normal blobs
|
||
|
// by virtue of having a reasonable strokewidth compatible neighbour.
|
||
|
class StrokeWidth : public BBGrid<BLOBNBOX, BLOBNBOX_CLIST, BLOBNBOX_C_IT> {
|
||
|
public:
|
||
|
StrokeWidth(int gridsize, const ICOORD& bleft, const ICOORD& tright);
|
||
|
virtual ~StrokeWidth();
|
||
|
|
||
|
// Puts the block blobs (normal and large) into the grid.
|
||
|
void InsertBlobs(TO_BLOCK* block, TabFind* line_grid);
|
||
|
|
||
|
// Moves the large blobs that have good stroke-width neighbours to the normal
|
||
|
// blobs list.
|
||
|
void MoveGoodLargeBlobs(int resolution, TO_BLOCK* block);
|
||
|
|
||
|
// Displays the blobs green or red according to whether they are good or not.
|
||
|
ScrollView* DisplayGoodBlobs(const char* window_name, ScrollView* tab_win);
|
||
|
|
||
|
// Handles a click event in a display window.
|
||
|
virtual void HandleClick(int x, int y);
|
||
|
|
||
|
private:
|
||
|
// Returns true if there is at least one side neighbour that has a similar
|
||
|
// stroke width.
|
||
|
bool GoodTextBlob(BLOBNBOX* blob);
|
||
|
};
|
||
|
|
||
|
} // namespace tesseract.
|
||
|
|
||
|
#endif // TESSERACT_TEXTORD_STROKEWIDTH_H__
|
||
|
|