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

📄 genblob.cpp

📁 一个google的OCR源码
💻 CPP
字号:
/********************************************************************** * File:        genblob.cpp  (Formerly gblob.c) * Description: Generic Blob processing routines * Author:      Phil Cheatle * Created:     Mon Nov 25 10:53:26 GMT 1991 * * (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. * **********************************************************************/#include "mfcpch.h"#include          "stepblob.h"#include          "polyblob.h"#include          "genblob.h"/********************************************************************** *  blob_comparator() * *  Blob comparator used to sort a blob list so that blobs are in increasing *  order of left edge. **********************************************************************/int blob_comparator(                     //sort blobs                    const void *blob1p,  //ptr to ptr to blob1                    const void *blob2p   //ptr to ptr to blob2                   ) {  PBLOB *blob1 = *(PBLOB **) blob1p;  PBLOB *blob2 = *(PBLOB **) blob2p;  return blob1->bounding_box ().left () - blob2->bounding_box ().left ();}/********************************************************************** *  c_blob_comparator() * *  Blob comparator used to sort a blob list so that blobs are in increasing *  order of left edge. **********************************************************************/int c_blob_comparator(                     //sort blobs                      const void *blob1p,  //ptr to ptr to blob1                      const void *blob2p   //ptr to ptr to blob2                     ) {  C_BLOB *blob1 = *(C_BLOB **) blob1p;  C_BLOB *blob2 = *(C_BLOB **) blob2p;  return blob1->bounding_box ().left () - blob2->bounding_box ().left ();}/********************************************************************** *  gblob_bounding_box() * *  Return the bounding box of a generic blob. **********************************************************************/TBOX gblob_bounding_box(                 //Get bounding box                       PBLOB *blob,     //generic blob                       BOOL8 polygonal  //is blob polygonal?                      ) {  if (polygonal)    return blob->bounding_box ();  else    return ((C_BLOB *) blob)->bounding_box ();}/********************************************************************** *  gblob_sort_list() * *  Sort a generic blob list into order of bounding box left edge **********************************************************************/void gblob_sort_list(                        //Sort a gblob list                     PBLOB_LIST *blob_list,  //generic blob list                     BOOL8 polygonal         //is list polygonal?                    ) {  PBLOB_IT b_it;  C_BLOB_IT c_it;  if (polygonal) {    b_it.set_to_list (blob_list);    b_it.sort (blob_comparator);  }  else {    c_it.set_to_list ((C_BLOB_LIST *) blob_list);    c_it.sort (c_blob_comparator);  }}/********************************************************************** *  gblob_out_list() * *  Return the generic outline list of a generic blob. **********************************************************************/OUTLINE_LIST *gblob_out_list(                 //Get outline list                             PBLOB *blob,     //generic blob                             BOOL8 polygonal  //is blob polygonal?                            ) {  if (polygonal)    return blob->out_list ();  else    return (OUTLINE_LIST *) ((C_BLOB *) blob)->out_list ();}/********************************************************************** *  goutline_bounding_box() * *  Return the bounding box of a generic outline. **********************************************************************/TBOX goutline_bounding_box(                   //Get bounding box                          OUTLINE *outline,  //generic outline                          BOOL8 polygonal    //is outline polygonal?                         ) {  if (polygonal)    return outline->bounding_box ();  else    return ((C_OUTLINE *) outline)->bounding_box ();}

⌨️ 快捷键说明

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