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

📄 seam.h

📁 一个google的OCR源码
💻 H
字号:
/* -*-C-*- ******************************************************************************** * * File:        seam.h  (Formerly seam.h) * Description: * Author:       Mark Seaman, SW Productivity * Created:      Fri Oct 16 14:37:00 1987 * Modified:     Thu May 16 17:05:52 1991 (Mark Seaman) marks@hpgrlt * Language:     C * Package:      N/A * Status:       Reusable Software Component * * (c) Copyright 1987, Hewlett-Packard Company. ** 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 SEAM_H#define SEAM_H/*----------------------------------------------------------------------              I n c l u d e s----------------------------------------------------------------------*/#include "split.h"#include "tessarray.h"/*----------------------------------------------------------------------              T y p e s----------------------------------------------------------------------*/typedef float PRIORITY;          /*  PRIORITY  */typedef struct seam_record{                                /*  SEAM  */  PRIORITY priority;  inT8 widthp;  inT8 widthn;  inT16 location;  SPLIT *split1;  SPLIT *split2;  SPLIT *split3;} SEAM;typedef ARRAY SEAMS;             /*  SEAMS  */extern SEAM *newseam();/*----------------------------------------------------------------------              M a c r o s----------------------------------------------------------------------*//********************************************************************** * clone_seam * * Create a new seam record and copy the contents of this seam into it. **********************************************************************/#define clone_seam(dest,source)                       \if (source) {                                       \	(dest) = newseam ();                     \	(dest)->location = (source)->location;           \	(dest)->widthp = (source)->widthp;           \	(dest)->widthn = (source)->widthn;           \	(dest)->priority = (source)->priority;           \	clone_split ((dest)->split1, (source)->split1);  \	clone_split ((dest)->split2, (source)->split2);  \	clone_split ((dest)->split3, (source)->split3);  \}                                                   \else {                                              \	(dest) = (SEAM*) NULL;                           \}                                                   \/********************************************************************** * exact_point * * Return TRUE if the point positions are the exactly the same. The * parameters must be of type (EDGEPT*). **********************************************************************/#define exact_point(p1,p2)                    \	(! ((p1->pos.x - p2->pos.x) || (p1->pos.y - p2->pos.y)))/*----------------------------------------------------------------------              F u n c t i o n s----------------------------------------------------------------------*/bool point_in_split(SPLIT *split, EDGEPT *point1, EDGEPT *point2);bool point_in_seam(SEAM *seam, SPLIT *split);SEAMS add_seam(SEAMS seam_list, SEAM *seam);void combine_seams(SEAM *dest_seam, SEAM *source_seam);void delete_seam(void *arg);  //SEAM  *seam);void free_seam_list(SEAMS seam_list);bool test_insert_seam(SEAMS seam_list,                      int index,                      TBLOB *left_blob,                      TBLOB *first_blob);SEAMS insert_seam(SEAMS seam_list,                  int index,                  SEAM *seam,                  TBLOB *left_blob,                  TBLOB *first_blob);int account_splits_right(SEAM *seam, TBLOB *blob);int account_splits_left(SEAM *seam, TBLOB *blob, TBLOB *end_blob);bool find_split_in_blob(SPLIT *split, TBLOB *blob);SEAM *join_two_seams(SEAM *seam1, SEAM *seam2);SEAM *new_seam(PRIORITY priority,               int x_location,               SPLIT *split1,               SPLIT *split2,               SPLIT *split3);SEAMS new_seam_list();void print_seam(const char *label, SEAM *seam);void print_seams(const char *label, SEAMS seams);int shared_split_points(SEAM *seam1, SEAM *seam2);#endif

⌨️ 快捷键说明

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