|
表格线识别通用库文档
|
表格线识别通用库是一款基于传统算法的图像处理工具,旨在为开发者提供便捷高效的表格线识别功能。
| 模块名 | 组件 | 中文名 | 说明 |
|---|---|---|---|
| base | 基础模块 | 包含了基本的数据结构和算法功能 | |
| point | 点 | 实现了一个二维空间中的坐标点 | |
| line | 线 | 写成实现了连接两个点的直线段 | |
| rectangle | 矩形 | 实现了由左上角点坐标和宽高所构成的矩形框 | |
| interval | 区间 | 实现了表示一段连续的数值区间 | |
| disjoint set | 并查集 | 实现了处理不相交集合的数据结构 | |
| scope | 作用域 | 实现了值存储和管理的作用域机制 | |
| percent | 百分比 | 实现了百分比和非百分比值的混合运算 | |
| list | 列表 | 实现了在固定时间内访问任意顺序单个元素的列表容器 | |
| list | 列表模块 | 包含了列表相关的操作和功能 | |
| lines | 线列表 | 实现了包含多条线段的列表 | |
| rectangles | 矩形列表 | 实现了包含多个矩形的列表 | |
| intervals | 区间列表 | 实现了包含多个数值区间的列表 | |
| feature | 功能模块 | 提供了具体功能实现的模块 | |
| horizontal lines | 横线列表 | 实现了包含多条水平线的列表 | |
| vertical lines | 竖线列表 | 实现了包含多条垂直线的列表 | |
| image | 图像 | 实现了图像的存储、内存管理以及数据处理等功能 | |
| projection | 投影 | 实现了图像投影及相关处理操作 | |
| image preprocess | 图像预处理 | 实现了一系列图像预处理操作 | |
| debug | 调试模块 | 包含了调试相关的工具和函数 | |
| color | 颜色 | 实现了终端文本样式和颜色设置 | |
| printer | 打印器 | 实现了复杂场景下的输出打印 | |
| complex printer | 复杂打印器 | 实现了复杂场景下的详细输出打印 | |
| debug | 调试器 | 实现了终端、文件形式的调试信息输出 | |
| utils | 工具模块 | 包含了各种常用工具函数 | |
| binary | 二进制 | 实现了与二进制数据相关的操作和转换 | |
| file | 文件 | 实现了与文件相关的操作 | |
| inout | 输入输出 | 实现了对文件的批量输入输出操作 | |
| string | 字符串 | 实现了与字符串相关的操作 |
可以在程序的任何位置通过调试器进行交互,令其打印内部数据,或是批量输出内部图片。当程序出现各种程序异常,如:断言、异常等,将会在控制台中打印完整的错误信息。这极大地降低了调试难度,提升了开发效率和调试体验。
安装 Cmake
1. 安装 bzip2、unzip、mlocate 和 gcc
shell yum -y install bzip2 yum –y install unzip yum install mlocate sudo yum install gcc sudo yum install gcc-c++
2. 安装或升级 cmake
shell wget https://cmake.org/files/v3.6/cmake-3.6.3.tar.gz
shell tar xvf cmake-3.6.3.tar.gz
如果系统中存在 cmake 旧版本,则删除旧版本。
shell yum remove cmake -y
shell cd cmake-3.6.3 ./bootstrap gmake sudo gmake install
shell cmake --version @subsection autotoc_md7 输出 `cmake version 3.6.3` 即可
方法二:通过 wget 下载,自行解压编译安装
shell wget https://codeload.github.com/opencv/opencv/zip/4.0.0
以下介绍不做特别说明时,均以安装 OpenCV 4.0.0 为例。
编译
shell sudo yum install gtk2-devel python-devel numpy libdc1394-devel libv4l-devel gstreamer-plugins-base-devel ant libpng-devel jasper-devel openexr-devel libwebp-devel libjpeg-turbo-devel libtiff-devel
shell unzip 4.0.0.zip
shell cd opencv-4.0.0 mkdir build cd build
shell cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=OFF -D BUILD_PNG=ON -D BUILD_JASPER=ON -D BUILD_JPEG=ON -D BUILD_TIFF=ON -D BUILD_ZLIB=ON -D BUILD_OPENEXR=ON -D BUILD_IPP_IW=ON -D BUILD_ITT=ON -D BUILD_IPP_IW=ON -D BUILD_TBB=ON -D BUILD_WEBP=ON -D WITH_JPEG=ON -D WITH_PNG=ON -D WITH_JASPER=ON -D WITH_TIFF=ON WITH_OPENEXR=ON -D WITH_WEBP=ON -D WITH_ITT=ON -D WITH_IPP=ON -D WITH_GTK=ON -D WITH_GTK_2_X=ON ..
shell make -j8 sudo make install
编写 CmakeList.txt 将库文件加入到编译过程之中
DEBUG_VALUE的变量,在进行整个项目的 CMake 编译时,当CMAKE_BUILD_TYPE变量为Debug时,将该变量设为 1。在本库的某些模块中,例如 debug 模块的特定方法调用时,需要启用该变量调用库模块
项目的使用,可以导入头文件#include "common.h"快速使用,注意需要声明命名空间 cm
比如(具体请参考文档)
| 模块名 | 说明 | 项目是否必须 |
|---|---|---|
| 核心模块(core) | 提供了图像处理、数组操作、矩阵运算等基本功能, Eigen 、zlib 、 libjpeg等 | 必须 |
| 图像 I/O 模块(imgcodecs) | 用于读取和写入不同格式的图像文件,比如 libpng 、libjpeg 、 libtiff、libwebp 等 | 必须 |
| 绘图模块(imgproc) | 提供了各种图像处理和绘图函数,如滤波、边缘检测、形态学操作、直方图等 | 必须 |
| 特征检测和描述子模块(features2d) | 包括了各种特征点检测、描述子提取和匹配算法,如 SIFT、SURF、ORB 等 | 非必须 |
| 目标检测模块(objdetect) | 提供了各种目标检测和识别算法,如 Haar 特征和级联分类器 | 非必须 |
| 机器学习模块(ml) | 实现了一些常见的机器学习算法,如 k-最近邻、支持向量机等 | 非必须 |
| 深度学习模块(dnn) | 集成了深度学习模型,可以使用预训练的神经网络进行图像分类、目标检测等 | 非必须 |
| 摄像机标定模块(calib3d) | 提供了相机标定和立体视觉相关的函数和算法 | 非必须 |
| 视频 I/O 模块(videoio) | 用于读取和写入视频文件,以及视频流的捕获和播放 | 非必须 |
| 图像配准和重建模块(stitching) | 用于图像拼接和全景图像生成 | 非必须 |
| 计算机视觉工具箱模块(cv) | 提供了各种计算机视觉的工具函数和类 | 必须 |
安装教程
详细参考 准备 中安装下载 OpenCV