leptonica_pageseg_interface.cpp
来自「一个google的OCR源码」· C++ 代码 · 共 83 行
CPP
83 行
///////////////////////////////////////////////////////////////////////// File: leptonica_pageseg_interface.cpp// Description: Leptonica-based page segmenter interface.// Author: Thomas Kielbus// Created: Mon Aug 27 10:05:01 PDT 2007//// (C) Copyright 2007, Google Inc.// 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 automatically generated configuration file if running autoconf.#ifdef HAVE_CONFIG_H#include "config_auto.h"#endif#include "leptonica_pageseg_interface.h"#include "leptonica_pageseg.h"#include "imgs.h"#ifdef HAVE_LIBLEPT// Include leptonica library only if autoconf (or makefile etc) tell us to.#include "allheaders.h"#endif#ifdef HAVE_LIBLEPT// ONLY available if you have Leptonica installed.// Use the LeptonicaPageSeg class to perform text block detection. Propagates// the error if any. LeptonicaPageSeg can also return invalid masks; in this// case, return an empty text block mask.bool leptonica_pageseg_get_textblock_mask(IMAGE* page_image, IMAGE* textblock_mask_image) { bool success = true; // Convert the page IMAGE to a PIX PIX* page_pix = page_image->ToPix(); // Compute the textblock mask PIX PIX* textblock_mask_pix = NULL; if (LeptonicaPageSeg::GetTextblockMask(page_pix, &textblock_mask_pix, NULL, NULL, false)) { if (pixGetWidth(textblock_mask_pix) != page_image->get_xsize() || pixGetWidth(textblock_mask_pix) != page_image->get_xsize()) fprintf(stderr, "WARNING: Leptonica's text block mask (%dx%d)" " and the original image (%dx%d) differ in size !\n", pixGetWidth(textblock_mask_pix), pixGetHeight(textblock_mask_pix), page_image->get_xsize(), page_image->get_ysize()); // Create the resulting mask image textblock_mask_image->destroy(); if (pixGetWidth(textblock_mask_pix) <= 0 || pixGetHeight(textblock_mask_pix) <= 0) { // Leptonica failed. Create an empty mask. fprintf(stderr, "WARNING: Leptonica's text block mask is invalid.\n"); textblock_mask_image->create(page_image->get_xsize(), page_image->get_ysize(), 1); } else { // Leptonica succeeded. Convert textblock_mask PIX to an IMAGE textblock_mask_image->FromPix(textblock_mask_pix); } } else { success = false; } pixDestroy(&page_pix); pixDestroy(&textblock_mask_pix); return success;}#endif // HAVE_LIBLEPT
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?