我最初考虑开发我自己的背景去除算法,但是如果我只能理解如何使用它,那么流行的文档格式DjVu似乎有它自己的前台/后台分离功能。
引用DjVu文档:
DjVu有三个基本的“模式”:
使用DjVuLayered模式压缩到DjVuLayered模式将产生30 of到100 of之间的文件,其中5到40 of用于前景层,其余用于背景和图片。
对于软件集成:
DjVuLibre包括独立查看器、浏览器插件(用于Mozilla、Firefox、Konqueror、Netscape、Galeon和Opera),以及命令行工具(解码器、编码器、实用程序)。
对于如何使用DjVu工具来分离给定扫描文档的背景和前景,有什么想法吗?
发布于 2010-12-23 11:05:26
如果文档是从扫描仪扫描的,那么图像只是一个像图像一样的平面位图。没有这样的层或对象。只有像素和更多像素。要使DjVu成为分层文档,就必须将其生成为分层文档。
编辑答复:
抱歉我没意识到。我做了些调查,你是对的。但是,分层选项需要在DjVu编码设置中打开。它告诉代码使用一种特殊的图像处理算法来搜索前景和背景对象,并将它们保存到不同的层中。
http://djvu.sourceforge.net - DjViLibre是一个C++库,可以满足您的需要。
WinDjView - http://windjview.sourceforge.net/是构建在DjVuLibre上的一个很好的DjVu文件查看器。它可以选择查看前景或背景对象。因此,在深入研究c++代码之前,这将是测试该算法有多好的好方法。
我建议将一些扫描的TIFF / JPEG文件上传到http://any2djvu.djvuzone.org/,然后使用WinDjView查看前后分离的结果。我上传了一份彩色JPEG文档,结果给我留下了深刻的印象。
WinDjView的源代码可在http://windjview.cvs.sourceforge.net/viewvc/windjview/windjview/ - RenderThread.cpp上找到-- CRenderThread::Render()函数是WinDjView中前景/背景查看函数的分层拆分/查看代码。
还有一个PDF文档解释了该算法是如何工作的--“DJVU文档压缩的通用分割方案……”--如果您使用"vincent djvu分段“执行Google搜索,然后单击第一个结果的”快速查看“链接,那么您可以读取PDF。原来的PDF不再可用。
我得再做些自我测试。我想知道商业应用的许可费是多少?
我希望这比我的第一次尝试能更好地回答你的问题。当DjVu第一次出现时,我看了一下它,出于某种原因忽略了这个特性。
更多信息
我又上传了大约10份文件,得出了以下结论。300 DjVu /W图像不能被DjVu处理成前后两层。B/W转换图像的整页仅包含在前台。当您上传到any2djvu时,它首先询问您是B/W还是彩色文档。当您选择B/W时,您将失去支持我的理论的背景处理选项,即B/W不支持自动背景分离。前后分离工作在灰色和彩色图像。但是,我没有足够的扫描图像来测试它的性能。
B/W分离不受支持,这可能是DjVu多年前没有在文档管理行业中起飞的部分原因。当它第一次出现时,大多数计算机都有足够长的时间来处理B/W图像。因此,进行灰度或彩色图像处理是不可行的,而且由于速度原因,大多数解决方案是B/W。如果我们当时正在处理彩色图像,那么DjVu将是一个非常好的解决方案。当DjVu发布时,它在扫描OCR应用程序方面并没有多大用处。即使在今天,它也是一项伟大的技术。
https://stackoverflow.com/questions/4516901
复制相似问题