#
# tesseract
#
# ##############################################################################
#
# cmake settings
#
# ##############################################################################
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
# In-source builds are disabled.
if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
message(
FATAL_ERROR
"CMake generation is not possible within the source directory!"
"\n Remove the CMakeCache.txt file and try again from another folder, "
"e.g.:\n "
"\n rm CMakeCache.txt"
"\n mkdir build"
"\n cd build"
"\n cmake ..")
endif()
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}")
# Use solution folders.
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets")
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.15.0")
if(WIN32)
cmake_policy(SET CMP0091 NEW)
message(STATUS "Setting policy CMP0091 to NEW")
endif()
endif()
# ##############################################################################
#
# project settings
#
# ##############################################################################
project(tesseract C CXX)
# Get version with components from VERSION file.
file(STRINGS "VERSION" VERSION_PLAIN)
string(REGEX REPLACE "^([^.]*)\\..*" "\\1" VERSION_MAJOR ${VERSION_PLAIN})
string(REGEX REPLACE "^[^.]*\\.([^.]*)\\..*" "\\1" VERSION_MINOR
${VERSION_PLAIN})
string(REGEX REPLACE "^[^.]*\\.[^.]*\\.([0-9]*).*" "\\1" VERSION_PATCH
${VERSION_PLAIN})
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
execute_process(COMMAND git --git-dir ${CMAKE_CURRENT_SOURCE_DIR}/.git
describe --abbrev=4 OUTPUT_VARIABLE GIT_REV)
string(REGEX REPLACE "\n$" "" PACKAGE_VERSION "${GIT_REV}")
endif()
if(NOT PACKAGE_VERSION)
set(PACKAGE_VERSION ${VERSION_PLAIN})
endif()
# Provide also same macro names as autoconf (see configure.ac).
set(GENERIC_MAJOR_VERSION ${VERSION_MAJOR})
set(GENERIC_MINOR_VERSION ${VERSION_MINOR})
set(GENERIC_MICRO_VERSION ${VERSION_PATCH})
set(MINIMUM_LEPTONICA_VERSION 1.74)
# ##############################################################################
#
# options
#
# ##############################################################################
message(STATUS "Configuring tesseract version ${PACKAGE_VERSION}...")
if(WIN32)
option(SW_BUILD "Build with sw" ON)
else()
option(SW_BUILD "Build with sw" OFF)
endif()
option(OPENMP_BUILD "Build with openmp support" OFF) # see issue #1662
option(GRAPHICS_DISABLED "Disable disable graphics (ScrollView)" OFF)
option(DISABLED_LEGACY_ENGINE "Disable the legacy OCR engine" OFF)
option(ENABLE_LTO "Enable link-time optimization" OFF)
option(FAST_FLOAT "Enable float for LSTM" ON)
option(ENABLE_OPENCL "Enable unsupported experimental OpenCL support" OFF)
option(ENABLE_NATIVE
"Enable optimization for host CPU (could break HW compatibility)" OFF)
# see
# https://stackoverflow.com/questions/52653025/why-is-march-native-used-so-rarely
option(BUILD_TRAINING_TOOLS "Build training tools" ON)
option(BUILD_TESTS "Build tests" OFF)
option(USE_SYSTEM_ICU "Use system ICU" OFF)
option(DISABLE_TIFF "Disable build with libtiff (if available)" OFF)
option(DISABLE_ARCHIVE "Disable build with libarchive (if available)" OFF)
option(DISABLE_CURL "Disable build with libcurl (if available)" OFF)
option(INSTALL_CONFIGS "Install tesseract configs" ON)
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.15.0")
if(WIN32 AND MSVC)
option(WIN32_MT_BUILD "Build with MT flag for MSVC" OFF)
endif()
endif()
# ##############################################################################
#
# compiler and linker
#
# ##############################################################################
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CLANG 1)
endif()
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "Setting build type to 'Release' as none was specified.")
set(CMAKE_BUILD_TYPE
Release
CACHE STRING "Choose the type of build." FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release")
endif()
include(CheckCXXCompilerFlag)
set(CMAKE_CXX_STANDARD 17)
if("cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
set(CMAKE_CXX_STANDARD 20)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# cygwin gnu c++ needs to use -std=gnu++17 instead of -std=c++17
set(CMAKE_CXX_EXTENSIONS OFF)
endif()
if(BUILD_SHARED_LIBS)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
endif()
# LTO
cmake_policy(SET CMP0069 NEW)
include(CheckIPOSupported)
check_ipo_supported(RESULT LTO_SUPPORTED OUTPUT error)
if(LTO_SUPPORTED)
message(STATUS "IPO / LTO supported")
else()
message(STATUS "IPO / LTO not supported: <${error}>")
endif()
set(MARCH_NATIVE_OPT OFF)
if(ENABLE_NATIVE)
check_cxx_compiler_flag("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
if(COMPILER_SUPPORTS_MARCH_NATIVE)
set(DOTPRODUCT_FLAGS "${DOTPRODUCT_FLAGS} -march=native")
if(NOT CLANG AND MSVC)
# clang-cl does not know this argument
set(DOTPRODUCT_FLAGS "${DOTPRODUCT_FLAGS} -mtune=native")
endif()
set(MARCH_NATIVE_OPT ON)
endif(COMPILER_SUPPORTS_MARCH_NATIVE)
endif(ENABLE_NATIVE)
message(STATUS "CMAKE_SYSTEM_PROCESSOR=<${CMAKE_SYSTEM_PROCESSOR}>")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|x86_64|AMD64|amd64|i386|i686")
set(HAVE_NEON FALSE)
if(MSVC)
set(HAVE_AVX ON)
set(AVX_COMPILE_FLAGS "/arch:AVX")
add_definitions("-DHAVE_AVX")
set(HAVE_AVX2 ON)
set(AVX2_COMPILE_FLAGS "/arch:AVX2")
add_definitions("-DHAVE_AVX2")
set(HAVE_AVX512F ON)
set(AVX512F_COMPILE_FLAGS "/arch:AVX512")
add_definitions("-DHAVE_AVX512F")
set(HAVE_FMA ON)
set(FMA_COMPILE_FLAGS "-D__FMA__")
add_definitions("-DHAVE_FMA")
set(HAVE_SSE4_1 ON)
set(SSE4_1_COMPILE_FLAGS "-D__SSE4_1__")
add_definitions("-DHAVE_SSE4_1")
set(DOTPRODUCT_FLAGS "${DOTPRODUCT_FLAGS} -openmp:experimental")
add_definitions("-DOPENMP_SIMD")
# clang with MSVC compatibility
if(CLANG)
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Wno-microsoft-unqualified-friend")
if(HAVE_FMA)
set(FMA_COMPILE_FLAGS "-mfma ${FMA_COMPILE_FLAGS}")
endif(HAVE_FMA)
if(HAVE_SSE4_1)
set(SSE4_1_COMPILE_FLAGS "-msse4.1 ${SSE4_1_COMPILE_FLAGS}")
endif(HAVE_SSE4_1)
endif(CLANG)
else() # if not MSVC
check_cxx_compiler_flag("-mavx" HAVE_AVX)
if(HAVE_AVX)
set(AVX_COMPILE_FLAGS "-mavx")
add_definitions("-DHAVE_AVX")
endif(HAVE_AVX)
check_cxx_compiler_flag("-mavx2" HAVE_AVX2)
if(HAVE_AVX2)
set(AVX2_COMPILE_FLAGS "-mavx2")
add_definitions("-DHAVE_AVX2")
endif()
check_cxx_compiler_flag("-mavx512f" HAVE_AVX512F)
if(HAVE_AVX512F)
set(AVX512F_COMPILE_FLAGS "-mavx512f")
add_definitions("-DHAVE_AVX512F")
endif()
check_cxx_compiler_flag("-mfma" HAVE_FMA)
if(HAVE_FMA)
set(FMA_COMPILE_FLAGS "-mfma")
add_definitions("-DHAVE_FMA")
endif()
check_cxx_compiler_flag("-msse4.1" HAVE_SSE4_1)
if(HAVE_SSE4_1)
set(SSE4_1_COMPILE_FLAGS "-msse4.1")
add_definitions("-DHAVE_SSE4_1")
endif()
check_cxx_compiler_flag("-fopenmp-simd" OPENMP_SIMD)
if(OPENMP_SIMD)
set(DOTPRODUCT_FLAGS "${DOTPRODUCT_FLAGS} -fopenmp-simd")
add_definitions("-DOPENMP_SIMD")
endif(OPENMP_SIMD)
endif(MSVC)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64.*|AARCH64.*")
set(HAVE_AVX FALSE)
set(HAVE_AVX2 FALSE)
set(HAVE_AVX512F FALSE)
set(HAVE_FMA FALSE)
set(HAVE_SSE4_1 FALSE)
set(HAVE_NEON TRUE)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*")
set(HAVE_AVX FALSE)
set(HAVE_AVX2 FALSE)
set(HAVE_AVX512F FALSE)
set(HAVE_FMA FALSE)
set(HAVE_SSE4_1
没有合适的资源?快使用搜索试试~ 我知道了~
Tesseract一个免费的OCR引擎源码Google维护和开发
共731个文件
cpp:270个
h:257个
cc:65个
需积分: 0 1 下载量 73 浏览量
2024-03-12
10:35:25
上传
评论
收藏 2.38MB ZIP 举报
温馨提示
Tesseract是一个免费的OCR引擎,OCR是Optical Character Recognition(光学字符识别)的缩写,它可以将印刷的或手写的文本、图像中的字符和文本转换成计算机可读的文本格式。Tesseract最初由美国康奈尔大学开发,现在是由Google维护和开发。Tesseract支持40多种语言的OCR识别,也可以通过训练自定义字体集进行扩展。Tesseract引擎是开源的,可以在Windows、Linux和MacOS等各种操作系统上使用,并提供多种编程语言的API,包括C++、Java、Python等。Tesseract还支持多线程处理,可以提高识别速度。Tesseract的识别精度和速度处于OCR引擎的高级水平,它可以识别不同字体、大小、样式和颜色的文本,支持各种表格和图像识别。如果训练得当,还可以用于识别手写文本和特殊符号。总体来说,Tesseract是一个非常优秀的OCR引擎,可用于从图像中提取文本和字符。它非常适用于需要大规模OCR处理的场景,如文件转换、自动化文本提取、图像标注和数据挖掘。
资源推荐
资源详情
资源评论
收起资源包目录
Tesseract一个免费的OCR引擎源码Google维护和开发 (731个子文件)
configure.ac 21KB
alto 23B
Makefile.am 63KB
Makefile.am 3KB
Makefile.am 365B
Makefile.am 218B
Makefile.am 184B
Makefile.am 166B
Makefile.am 86B
Makefile.am 56B
Makefile.am 21B
Makefile.am 17B
api_config 26B
tesseract.1.asc 15KB
combine_tessdata.1.asc 7KB
text2image.1.asc 6KB
unicharset.5.asc 5KB
lstmtraining.1.asc 4KB
unicharambigs.5.asc 3KB
combine_lang_model.1.asc 3KB
lstmeval.1.asc 2KB
shapeclustering.1.asc 2KB
mftraining.1.asc 2KB
classifier_tester.1.asc 2KB
wordlist2dawg.1.asc 1KB
set_unicharset_properties.1.asc 1KB
unicharset_extractor.1.asc 1KB
merge_unicharsets.1.asc 1KB
dawg2wordlist.1.asc 974B
ambiguous_words.1.asc 799B
cntraining.1.asc 774B
AUTHORS 787B
batch 49B
bazaar 113B
tesseract.bib 3KB
bigram 129B
rune.c 7KB
capiexample_c_test.c 891B
paragraphs_test.cc 38KB
tfnetwork.pb.cc 37KB
normstrngs_test.cc 23KB
resultiterator_test.cc 23KB
stringrenderer_test.cc 21KB
recodebeam_test.cc 20KB
equationdetect_test.cc 18KB
baseapi_test.cc 15KB
unicodetext.cc 15KB
loadlang_test.cc 14KB
pango_font_info_test.cc 12KB
mastertrainer_test.cc 12KB
tablerecog_test.cc 11KB
validate_indic_test.cc 11KB
textlineprojection_test.cc 10KB
lang_model_test.cc 10KB
lstm_test.cc 10KB
tablefind_test.cc 9KB
unicharcompress_test.cc 9KB
layout_test.cc 9KB
baseapi_thread_test.cc 8KB
validate_grapheme_test.cc 8KB
stridemap_test.cc 7KB
heap_test.cc 7KB
networkio_test.cc 7KB
tfile_test.cc 6KB
unicharset_test.cc 6KB
osd_test.cc 6KB
shapetable_test.cc 6KB
commandlineflags_test.cc 6KB
rect_test.cc 5KB
imagedata_test.cc 5KB
bitvector_test.cc 5KB
intfeaturemap_test.cc 5KB
progress_test.cc 5KB
applybox_test.cc 5KB
intsimdmatrix_test.cc 5KB
lstmtrainer_test.cc 5KB
matrix_test.cc 5KB
apiexample_test.cc 4KB
dawg_test.cc 4KB
linlsq_test.cc 4KB
ligature_table_test.cc 4KB
pagesegmode_test.cc 4KB
list_test.cc 4KB
tatweel_test.cc 4KB
tabvector_test.cc 4KB
indexmapbidi_test.cc 4KB
scanutils_test.cc 4KB
nthitem_test.cc 4KB
denorm_test.cc 4KB
validator_test.cc 3KB
params_model_test.cc 3KB
validate_myanmar_test.cc 3KB
qrsequence_test.cc 2KB
validate_khmer_test.cc 2KB
colpartition_test.cc 2KB
stats_test.cc 2KB
unilib.cc 2KB
lstm_recode_test.cc 2KB
fileio_test.cc 2KB
unichar_test.cc 2KB
共 731 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
愚梦者
- 粉丝: 1790
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功