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

📄 render.cpp

📁 一OCR的相关资料。.希望对研究OCR的朋友有所帮助.
💻 CPP
字号:
/* -*-C-*- ******************************************************************************** * * File:        render.c  (Formerly render.c) * Description:  Convert the various data type into line lists * Author:       Mark Seaman, OCR Technology * Created:      Fri Jul 28 13:14:48 1989 * Modified:     Mon Jul 15 10:23:37 1991 (Mark Seaman) marks@hpgrlt * Language:     C * Package:      N/A * Status:       Experimental (Do Not Distribute) * * (c) Copyright 1989, 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. * *********************************************************************************/#include "render.h"#include "blobs.h"#ifdef __UNIX__#include <assert.h>#endif#include <math.h>#include "vecfuncs.h"#include "debug.h"/*----------------------------------------------------------------------              V a r i a b l e s----------------------------------------------------------------------*/void *blob_window = NULL;C_COL color_list[] = {  Red, Cyan, Yellow, Blue, Green, White};make_toggle_var (display_all_blobs, 0, make_disp_all_blobs,5, 1, toggle_blobs, "Display Blobs");make_toggle_var (display_all_words, 0, make_disp_all_words,5, 2, toggle_wdisp, "Display Words");make_toggle_var (blob_pause, 0, make_blob_pause,5, 6, toggle_pause, "Blob pause");/*----------------------------------------------------------------------              F u n c t i o n s----------------------------------------------------------------------*//********************************************************************** * display_blob * * Macro to display blob in a window. **********************************************************************/void display_blob(TBLOB *blob, C_COL color) {   void *window;  TPOINT origin;  /* Size of drawable */  if (blob_window == NULL) {    blob_window = c_create_window ("Blobs", 520, 10,      500, 128, -1000.0, 1000.0, 0.0, 256.0);  }  else {    c_clear_window(blob_window);   }  window = blob_window;  /* Render blob */  blob_origin(blob, &origin);   render_blob(window, blob, origin, color);   /* Default zoom */  c_make_current(window); }/********************************************************************** * init_render_vars * * Initialize the render graphics menu items. **********************************************************************/void init_render_vars() {   make_disp_all_blobs();   make_disp_all_words();   make_blob_pause(); }/********************************************************************** * render_blob * * Create a list of line segments that represent the expanded outline * that was supplied as input. **********************************************************************/void render_blob(void *window, TBLOB *blob, TPOINT origin, C_COL color) {   /* No outline */  if (!blob)    return;  render_outline (window, blob->outlines, origin, color);}/********************************************************************** * render_edgepts * * Create a list of line segments that represent the expanded outline * that was supplied as input. **********************************************************************/void render_edgepts(void *window, EDGEPT *edgept, C_COL color) {   float x = edgept->pos.x;  float y = edgept->pos.y;  EDGEPT *this_edge = edgept;  if (!edgept)    return;  c_line_color_index(window, color);   c_move(window, x, y);   do {    this_edge = this_edge->next;    x = this_edge->pos.x;    y = this_edge->pos.y;    c_draw(window, x, y);   }  while (edgept != this_edge);}/********************************************************************** * render_outline * * Create a list of line segments that represent the expanded outline * that was supplied as input. **********************************************************************/void render_outline(void *window,                    TESSLINE *outline,                    TPOINT origin,                    C_COL color) {  /* No outline */  if (!outline)    return;  /* Draw Compact outline */  if (outline->loop)    render_edgepts (window, outline->loop, color);  /* Add on next outlines */  render_outline (window, outline->next, origin, color);  /* Add on child outlines */  render_outline (window, outline->child, origin, Grey);}

⌨️ 快捷键说明

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