mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-13 16:09:04 +08:00
0a9ad20d1c
git-svn-id: https://tesseract-ocr.googlecode.com/svn/trunk@301 d0cd1f9f-072b-0410-8dd7-cf729c803f20
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__
|
|
|