Leptonica
用于高级图像处理的 C API
开源 C 库使开发人员能够在自己的应用程序中执行高级图像处理操作,例如图像缩放、平移、旋转、剪切。
Leptonica 是一个开源 C 图像处理和图像分析库,对于处理文档图像和自然图像非常有用。该库非常稳定,支持多种图像格式,例如 JPEG、PNG、TIFF、WebP、JP2、BMP、PNM、PS、GIF 和 PDF。您可以轻松地对提供的图像格式列表执行读取和写入操作。该库主要使用面向对象的方法和一组使代码安全、可移植和透明的设计原则。
该库提供对几个重要操作的支持以及一组用于图像处理和图像分析的工具。该库支持图像缩放、平移、旋转、剪切、随像素深度变化的图像变换、二进制和灰度形态、逐像素掩蔽、混合、增强、算术运算等操作。它还支持几个重要的实用程序,例如处理图像相关数据类型的数组,例如 pixa、boxa、pta 和 其他。
它还提供了读取和写入具有多个图像的文件以及写入带有嵌入在标题中的特殊 TIFF 标签的文件的功能。它还允许开发人员以各种格式编写 PostScript 文件,例如转换为 PDF、光栅图像以及将 PostScript 文件转换为一组压缩图像。
开始使用 Leptonica
安装 Leptonica 的最简单方法是通过 GitHub 使用。请使用以下命令顺利安装
通过 GitHub 安装 Leptonica。
git clone --depth=1 https://github.com/mrdoob/three.js.git
读取和写入图像
开放源码库Leptonica让软件开发者能够在自己的应用程序中读取和写入图像。 它提供了若干阅读和写作图像的重要方法、如阅读和写作图像的低级和高级函数、阅读和写入多个图像的函数。 图书馆也支持一些具体的编码。
通过莱托尼察图书馆阅读图像
// Open input image with leptonica library
Pix *image = pixRead("/usr/src/tesseract-3.02/phototest.tif");
api->SetImage(image);
// Get OCR result
char *outText;
outText = api->GetUTF8Text();
通过 C 库进行图像缩放
开源库 Leptonica 为在他们自己的 C 应用程序中轻松缩放图像提供了完整的支持。 Leptonica 提供了许多缩放功能,例如使用线性插值进行放大、使用子采样或区域映射进行缩小、采样、2x 和 4x 线性插值放大、RGB 到灰度或二进制的整数子采样等等。除此之外,还提供了对二进制图像的非常快速的缩放,并且对于扫描的二进制文本的图像分析很有用。
通过 C 库更好的图像旋转
开源库 Leptonica 支持在他们自己的 C 应用程序中旋转图像。实现图像旋转操作的方法有很多种,例如剪切旋转、区域映射旋转、特殊旋转 90、180 或 270 度、2 或 3 剪切旋转等等。
180度图像转动通过C图书馆
extra = w & 31;
if (extra)
shift = 32 - extra;
else
shift = 0;
if (shift)
rasteropHipLow(datas, w, h, d, wpls, 0, h, shift);
databpl = (w + 7) / 8;
bpl = 4 * wpls;
for (i = 0; i < h; i++) {
lines = datas + (h - 1 - i) * wpls;
lined = datad + i * wpld;
for (j = 0; j < databpl; j++) {
if (val = GET_DATA_BYTE(lines, bpl - 1 - j))
SET_DATA_BYTE(lined, j, tab[val]);
}
}
if (shift)
rasteropHipLow(datas, w, h, d, wpls, 0, h, -shift);