⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 charcut.h

📁 一OCR的相关资料。.希望对研究OCR的朋友有所帮助.
💻 H
字号:
/********************************************************************** * File:        charcut.h  (Formerly charclip.h) * Description: Code for character clipping * Author:      Phil Cheatle * Created:     Wed Nov 11 08:35:15 GMT 1992 * * (C) Copyright 1991, 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           CHARCUT_H#define           CHARCUT_H#include          "pgedit.h"#include          "notdll.h"#include          "notdll.h"/************************************************************************* * CLASS PIXROW * * This class describes the pixels occupied by a blob. It uses two arrays, (min * and max), each with one element per row, to identify the min and max x * coordinates of the black pixels in the character on that row of the image. * The number of rows used to describe the blob is held in row_count - note that * some rows may be unoccupied - signified by max < min. The page coordinate of * the row defined by min[0] and max[0] is held in row_offset. *************************************************************************/class PIXROW:public ELIST_LINK{  public:    INT16 row_offset;            //y coord of min[0]    INT16 row_count;             //length of arrays    INT16 *min;                  //array of min x    INT16 *max;                  //array of max x    PIXROW() {  //empty constructor      row_offset = 0;      row_count = 0;      min = NULL;      max = NULL;    }    PIXROW(  //specified size           INT16 pos,           INT16 count,           PBLOB *blob);    ~PIXROW () {                 //destructor      if (min != NULL)        free_mem(min);       if (max != NULL)        free_mem(max);       max = NULL;    }    void plot(                   //use current settings              WINDOW fd) const;  //where to paint    BOX bounding_box() const;  //return bounding box                                 //return true if box exceeds image    bool bad_box(int xsize, int ysize) const;     void contract(                           //force end on black                  IMAGELINE *imlines,        //image array                  INT16 x_offset,            //of pixels[0]                  INT16 foreground_colour);  //0 or 1                                 //image array    BOOL8 extend(IMAGELINE *imlines,                 BOX &imbox,                 PIXROW *prev,              //for prev blob                 PIXROW *next,              //for next blob                 INT16 foreground_colour);  //0 or 1                                 //box of imlines extnt    void char_clip_image(IMAGELINE *imlines,                         BOX &im_box,                         ROW *row,              //row containing word                         IMAGE &clip_image,     //unscaled char image                         float &baseline_pos);  //baseline ht in image};ELISTIZEH (PIXROW)extern INT_VAR_H (pix_word_margin, 3, "How far outside word BB to grow");extern BOOL_VAR_H (show_char_clipping, TRUE, "Show clip image window?");extern INT_VAR_H (net_image_width, 40, "NN input image width");extern INT_VAR_H (net_image_height, 36, "NN input image height");extern INT_VAR_H (net_image_x_height, 22, "NN input image x_height");void char_clip_word(                            //                    WERD *word,                 //word to be processed                    IMAGE &bin_image,           //whole image                    PIXROW_LIST *&pixrow_list,  //pixrows built                    IMAGELINE *&imlines,        //lines cut from image                    BOX &pix_box                //box defining imlines                   );IMAGELINE *generate_imlines(                   //get some imagelines                            IMAGE &bin_image,  //from here                            BOX &pix_box);                                 //word to be processedWINDOW display_clip_image(WERD *word,                          IMAGE &bin_image,          //whole image                          PIXROW_LIST *pixrow_list,  //pixrows built                          BOX &pix_box               //box of subimage                         );void display_images(IMAGE &clip_image, IMAGE &scaled_image); void plot_pixrows(  //plot for all blobs                  PIXROW_LIST *pixrow_list,                  WINDOW win);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -