【问题标题】:Using the DjVu tools to for background / foreground seperation?使用 DjVu 工具进行背景/前景分离?
【发布时间】:2010-12-25 20:13:23
【问题描述】:

我最初打算开发自己的background removal algorithm,但如果我只能了解如何使用它,流行的文档格式DjVu 似乎有自己的前景/背景分离功能。

引用 DjVu 文档:

DjVu 有 3 种基本“模式”:

  1. DjVuText -- 黑白(黑白)文档
  2. DjVuPhoto -- 连续色调图像,例如照片、扫描的图形艺术等。
  3. DjVuLayered -- 彩色文件,如杂志、目录、历史文件等。

使用DjVuLayered模式压缩到DjVu会产生30KB到100KB之间的文件,其中5到40KB用于前景层,其余用于背景和图片。

对于软件集成:

DjVuLibre 包括一个独立的查看器、一个浏览器插件(用于 Mozilla、Firefox、Konqueror、Netscape、Galeon 和 Opera)和命令行工具(解码器、编码器、实用程序)。

任何想法如何使用 DjVu 工具来分离给定扫描文档的背景和前景?

【问题讨论】:

    标签: image image-processing automation background document


    【解决方案1】:

    如果文档是从扫描仪扫描的,则图像只是一个平面位图图像。没有这样的层或对象。只是像素和更多像素。要将 DjVu 制作成分层文档,必须将其生成为分层文档。


    编辑答案:

    对不起,我不知道。我做了一些研究,你是对的。不过,需要在 DjVu 编码设置中打开分层选项。告诉编码器使用特殊的图像处理算法来搜索前景和背景对象,并将它们保存到单独的层中。

    http://djvu.sourceforge.net - DjViLibre 是一个 C++ 库,可以满足您的需求。

    WinDjView - http://windjview.sourceforge.net/ 是一个不错的基于 DjVuLibre 构建的 DjVu 文件查看器。它具有查看前景或背景对象的选项。因此,这将是在深入研究 C++ 代码之前测试算法的好坏的好方法。

    我建议将一些扫描的 TIFF / JPEG 文件上传到http://any2djvu.djvuzone.org/,然后使用 WinDjView 查看前/后分离的结果。我上传了 1 个彩色 JPEG 文档,结果给我留下了深刻的印象。

    WinDjView 的源代码位于http://windjview.cvs.sourceforge.net/viewvc/windjview/windjview/ - RenderThread.cpp - 函数 CRenderThread::Render() 是 WinDjView 中前景/背景查看功能的分层/查看代码。

    还有一个 PDF 文档解释了算法的工作原理 - “DJVU 文档压缩的一般分割方案......” - 如果您使用“vincent djvu 分割”执行 Google 搜索,然后单击“快速查看”链接的第一个结果,然后您可以阅读 PDF。原始 PDF 不再可用。

    我将不得不自己做一些测试。我想知道商业应用的许可费用是多少?

    我希望这比我的第一次尝试能更好地回答您的问题。刚出来的时候我看的是 DjVu,但由于某种原因忽略了这个功能。


    附加信息

    我又上传了大约 10 个文件,并得出以下结论。 DjVu 无法将 300dpi 黑白图像处理为前/后层。黑白转换图像的整个页面仅包含在前景中。当您上传到 any2djvu 时,它首先会询问您是黑白文档还是彩色文档。当您选择黑白时,您将失去支持我的理论的背景处理选项,自动背景分离不支持黑白。前/后分离适用于灰色和彩色图像。我没有足够的扫描图像来测试它的性能。

    不支持 B/W 分离的事实可能是 DjVu 多年前没有在文档管理行业起飞的部分原因。当它刚问世时,大多数计算机在处理黑白图像、去歪斜和去斑方面都相当困难。因此,执行灰度或彩色图像处理是不可行的,并且出于速度原因,大多数解决方案都是黑白的。如果我们当时使用彩色图像,那么 DjVu 将是一个非常好的解决方案。 DjVu 在它发布的时候,在扫描 OCR 的应用程序中并没有多大用处。即使在今天,它也是一项伟大的技术。

    【讨论】:

    • @Andrew - 不太正确。事实上,一些 DjVu 工具确实提供了背景/前景分离及其压缩的核心功能之一。一个使用示例是在漫画中,其中彩色背景与黑色线条分开。 DjVu 也有一套非凡的压缩器,比 JPEG 更先进。是的,采用率应该更高,但生活中最好的东西往往没有受到影响。去读吧。
    • @Andrew - 非常感谢!! .. 还有一个问题,是否有离线库或应用程序可以真正将图层与单个分层 TIFF/BMP 文件分开?哪个?
    • 我想弄清楚你所说的离线 libaray 是什么意思?您的意思是用于背景删除的 C++ 类型库与 DjVu 无关,但执行类似的功能?如果是这样,在制作任何 cmets 之前查看一些文档会很有用。我在上面的答案中添加了更多的 cmets。
    • 在 DjVu 中,分离是在编码器中自动执行的。 DjVuLibre 是一个 C++ 库,可以分离图层。我上传了 JPG 文件,但存在一些分离问题。图像中 96 dpi 的图像分辨率可能太低,算法无法准确工作,我相信它会更喜欢 200dpi+ 图像。值得尝试一些更高分辨率的图像。我尝试的图像是带有背景的彩色激光打印发票,并且 DjVu 编码器运行良好。如果文件大小有问题,您可以随时将它们缩小。
    • 经过更多研究后,似乎大多数 DjVu 已作为 DjLibre 开源。 AT&T 拥有前/后分离专利的增强型编码器被排除在外,这意味着我们谈论的 DjVu 的大部分好处在 DjLibre 中不可用。 LizardTech 网站已删除所有提及 DjVu 的内容,他们已转向其他类似技术。是时候研究其他选择或再等几年专利到期了。
    猜你喜欢
    • 2013-01-03
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多