问题标签 [leptonica]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

c++ - “找不到 - 我" 运行时出错

机器详情:

我正在尝试使用图像处理库 leptonica 运行一个简单的代码。代码只是读取图像并将图像写入文件。

我使用以下过程包含了所有库

我还通过单击库路径添加了库的路径。我添加了大约 14 个库。我为每个库得到的错误是

谁能告诉我为什么会发生这种情况以及如何解决?这是包含库的正确方法吗?

0 投票
1 回答
188 浏览

c# - 尝试运行 ac# 项目时出现 BadImageFormatException 或 System.DllNotFoundException

我已经使用输出配置管理器设置构建了一个 cpp dll,如快照所示

快照.

它构建成功并创建了 dll。然后为了使用它,我编写了包含 dll 的 ac# 项目,如下所示

之后,我使用如图所示的配置构建它

消费者配置

当我尝试运行此应用程序时,我在控制台中得到以下输出。

之后,当我更改构建配置并尝试再次构建它时,cpp 项目不会构建并给出很多类型的错误,如下所示。

这个特殊的库 leptonica 和所有必要的库都是在 64 位机器上单独构建的。当我尝试更改 c# 项目的配置时,我得到了异常

我在项目中所做的是调用 dll 函数来读取图像并对其进行操作。我认为这与我要读取的图像格式有关。所以我尝试使用 .jpeg 和 .tif 运行应用程序但始终具有相同的输出。我在 64 位机器上的 Visual Studio 2013 和框架 3.5 上执行所有这些操作。BadImageFormatException 的确切含义是什么以及如何解决它?是代码问题还是架构问题?

0 投票
1 回答
376 浏览

leptonica - 使用 leptonica 旋转时图像像素丢失

我想从图像中提取文本,我需要将其旋转 90 度。当我使用旋转图像时

顶部和底部的一些像素丢失了。我尝试过的变化是

以及 L_ROTATE_SHEAR、L_ROTATE_SAMPLING。但是边界附近的像素在每种情况下都会丢失。有没有办法在不丢失像素的情况下进行这种旋转?

0 投票
3 回答
24353 浏览

c++ - C++:将 Hbitmap/BITMAP 转换为 .bmp 文件

好的,整个故事是,我正在尝试在 C++ 中使用 Leptonica+Tesseract OCR 来截取屏幕截图,将其保存到 *.bmp 文件,然后将其加载回 OCR。我不需要经常这样做,但由于我似乎无法将屏幕截图数据直接复制到 Leptonica PIX 结构中,所以我需要先将其保存到文件中。实际上,最好有一个解决方案。

这是我在网上找到的一些代码,试图帮助我。

屏幕盖:

尝试编写函数:

多年来无耻地抄袭人们的帖子。好的!我面临的问题是,我似乎无法理解如何将 Hbitmap 全局分配到全局可访问的句柄中,该句柄可以转换或与 LPBITMAPINFOHEADER 一起使用。创建 lpbi 后,其中的每个字段在 Visual Studio 2012 调试中都是“无法读取内存”错误。它是不可访问的,尽管被创建了。

解决方案..直接从屏幕截图到 PIX,在内存中..找到一种方法来保存到位图并定期创建它们以供阅读..找到另一种更有意义的方法..

更喜欢第一个,但是,我要求解决这个问题,而不是第二个..或第三个。

如果您需要更多信息,我可以尝试提供。这主要归结为“我以前从未做过这样的代码,而且我的课堂上也没有教过它,所以我正在努力学习”。

0 投票
1 回答
607 浏览

tesseract - 通过从图像中查找文本坐标来提取文本区域

我正在开发一种图像处理软件,它可以从手机摄像头拍摄的图像中提取/裁剪并增强这种裁剪后的单页表单。表单没有矩形边界以简化提取过程。是的,它是白色背景黑色文本格式,但是除此之外没有什么是固定的。现在将出现一些文本,以验证图像是否符合要求。所以我的问题是这些。

1)我可以使用 leptonica 库本身搜索特定的正则表达式,还是我必须将焦点转移到其他库(如 tessarect API)来执行此操作。到目前为止,我还没有找到任何此类

2)现在假设我知道左上角和右下角的文本并且我成功搜索它。我可以获得我正在搜索的特定文本的坐标然后相应地裁剪图像吗?

0 投票
0 回答
116 浏览

ios - 图像编辑期间的内存增长

我正在尝试获取 PDF 页面的图像并对其进行编辑。一切正常,但内存增长巨大。Profiler 说没有任何内存泄漏。分析器还说,在 UIGraphicsGetCurrentContext() 和 UIGraphicsGetImageFromCurrentImageContext() 分配了 90% 的内存。此代码不在循环中运行,无需使用@autorelease 包装它。

但是调试显示只有当我开始编辑获取的图像时才会出现内存增长。对于图像编辑,我使用 Leptonica 库。例如:

在 pixConvertTo8 应用程序占用 13MB 之前,之后 - 50MB。显然增长取决于图像大小。转换方法:

PS对不起我糟糕的英语。

0 投票
2 回答
1429 浏览

image-processing - 即使是高质量图像,Tesseract 也无法识别字符

我正在使用 leptonica 进行清理和图像处理,然后将其传递给 tesseract 进行 OCR。但是,即使图像质量很高,它也无法识别字符。图像规格如下。

以下是我使用 leptonica 依次进行的图像处理操作

我在输出中得到垃圾字符。示例输入图像如下。 在此处输入图像描述

我得到的输出如下

我应该怎么做才能提高准确性。

第2部分:

我尝试点击此链接。并创建了一个 eng.user-words.traineddata 文件和 bazaar.train 文件,并尝试使用“bazaar”作为附加参数运行。但我得到“read_params_file:无法打开集市错误”。有什么建议么?

0 投票
1 回答
584 浏览

c++ - 在 Leptonica 中获取 Pix 类型图像的感兴趣区域(ROI)

我想知道我应该使用什么函数来获取使用Leptonica 图像处理库的 Pix 类型图像的感兴趣区域。我已经在 OpenCV 中完成了这项工作,并且我想要在 Leptonica 中使用它的一个版本。提前致谢。

OpenCV 代码:

0 投票
4 回答
1416 浏览

opencv - 如何从图像中过滤纹理以进行 OCR

我正在尝试对某些具有以下纹理的表单进行 OCR:

原始图像

此纹理导致 OCR 程序忽略它,将其标记为图像区域。

我考虑过使用形态学。带有星号的关闭操作最终如下:

关闭操作

这个结果对于 OCR 来说仍然不够好。

当我手动擦除“胡椒”并对图像进行自适应阈值处理时,如下在 OCR 上给出了良好的结果:

编辑和阈值

你对这个问题还有其他想法吗?

谢谢

0 投票
1 回答
754 浏览

c# - 如何在 Capture2Text 中使用 Leptonica 在 EmguCV 中进行预处理

我正在 EmguCV 中开发 OCR 应用程序。我的目标是实现与 Capture2Text 相同的结果。

Capture2Text 使用 Tesseract 引擎进行 OCR 和 Leptonica 库进行预处理。我们知道 EmguCV 正在使用 Tesseract 引擎进行 OCR,因此我们只剩下预处理了。

Capture2Text 中的预处理是通过使用特定值按以下顺序调用 Leptonica 的函数来完成的。实际代码文件位于文件夹 ...\ Capture2Text_v3.5 \Capture2Text\SourceCode\leptonica_util 下的 leptonica_util.c 中

读入源图像 转换为灰度 执行自动否定图像 缩放图像(线性插值) 应用非锐化蒙版 执行 Otsu 二值化

在这两种可能的选择中,哪一种更好?如何?

  1. 在 EmguCV 中使用 Leptonica 库,方法是将其包含在代码中,然后使用相同的参数调用相同的函数。
  2. 尝试查找和使用 EmguCV 中已有的等效功能。

我曾尝试选择选项 1,但无法正确执行。对于第二个选项,我不确定在 EmguCV 中的具体位置。