Mercurial > hgrepos > Python2 > PyMuPDF
view mupdf-source/thirdparty/tesseract/src/textord/pitsync1.h @ 40:aa33339d6b8a upstream
ADD: MuPDF v1.26.10: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.5.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 11 Oct 2025 11:31:38 +0200 |
| parents | b50eed0cc0ef |
| children |
line wrap: on
line source
/********************************************************************** * File: pitsync1.h (Formerly pitsync.h) * Description: Code to find the optimum fixed pitch segmentation of some blobs. * Author: Ray Smith * Created: Thu Nov 19 11:48:05 GMT 1992 * * (C) Copyright 1992, Hewlett-Packard Ltd. ** 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 PITSYNC1_H #define PITSYNC1_H #include "blobbox.h" #include "clst.h" #include "elst.h" #include "params.h" #include "pithsync.h" #include "statistc.h" namespace tesseract { class FPSEGPT_LIST; class FPSEGPT : public ELIST_LINK { public: FPSEGPT() = default; FPSEGPT( // constructor int16_t x); // position FPSEGPT( // constructor int16_t x, // position bool faking, // faking this one int16_t offset, // extra cost dist int16_t region_index, // segment number int16_t pitch, // proposed pitch int16_t pitch_error, // allowed tolerance FPSEGPT_LIST *prev_list); // previous segment FPSEGPT(FPCUTPT *cutpt); // build from new type int32_t position() { // access func return xpos; } double cost_function() { return cost; } double squares() { return sq_sum; } double sum() { return mean_sum; } FPSEGPT *previous() { return pred; } int16_t cheap_cuts() const { // no of cheap cuts return mid_cuts; } bool faked; // faked split point bool terminal; // successful end int16_t fake_count; // total fakes to here private: int16_t mid_cuts; // no of cheap cuts int32_t xpos; // location FPSEGPT *pred; // optimal previous double mean_sum; // mean so far double sq_sum; // summed distsances double cost; // cost function }; ELISTIZEH(FPSEGPT) CLISTIZEH(FPSEGPT_LIST) extern INT_VAR_H(pitsync_linear_version); extern double_VAR_H(pitsync_joined_edge); extern double_VAR_H(pitsync_offset_freecut_fraction); double check_pitch_sync( // find segmentation BLOBNBOX_IT *blob_it, // blobs to do int16_t blob_count, // no of blobs int16_t pitch, // pitch estimate int16_t pitch_error, // tolerance STATS *projection, // vertical FPSEGPT_LIST *seg_list // output list ); void make_illegal_segment( // find segmentation FPSEGPT_LIST *prev_list, // previous segments TBOX blob_box, // bounding box BLOBNBOX_IT blob_it, // iterator int16_t region_index, // number of segment int16_t pitch, // pitch estimate int16_t pitch_error, // tolerance FPSEGPT_LIST *seg_list // output list ); int16_t vertical_torow_projection( // project whole row TO_ROW *row, // row to do STATS *projection // output ); void vertical_cblob_projection( // project outlines C_BLOB *blob, // blob to project STATS *stats // output ); void vertical_coutline_projection( // project outlines C_OUTLINE *outline, // outline to project STATS *stats // output ); } // namespace tesseract #endif
