Rob*_*cks 5 automation background document image image-processing
我最初正在研究开发自己的背景去除算法,但看起来流行的文档格式DjVu有自己的前景/背景分离功能,如果我只能理解如何使用它.
引用DjVu文档:
DjVu有3种基本的"模式":
- DjVuText - 黑白(双色)文档
- DjVuPhoto - 连续色调图像,如照片,扫描图形艺术等.
- DjVuLayered - 彩色文档,如杂志,目录,历史文档等.
使用DjVuLayered模式压缩到DjVu 将生成30KB到100KB之间的文件,其中5到40KB将用于前景层,其余用于背景和图片.
对于软件集成:
DjVuLibre包括一个独立的查看器,一个浏览器插件(用于Mozilla,Firefox,Konqueror,Netscape,Galeon和Opera),以及命令行工具(解码器,编码器,实用程序).
有关如何使用DjVu工具分离给定扫描文档的背景和前景的任何想法?
如果从扫描仪扫描文档,则图像只是像图像一样的平面位图.没有这样的层或对象.只是像素和更多像素.要使DjVu成为分层文档,必须将其生成为分层文档.
编辑答案:
对不起,我不知道.我做了一些研究,你是对的.但是,需要在DjVu编码设置中打开分层选项.告诉编码使用特殊的图像处理算法来搜索前景和背景对象,并将它们保存到单独的层中.
http://djvu.sourceforge.net - DjViLibre是一个C++库,可以满足您的需求.
WinDjView - http://windjview.sourceforge.net/是一个基于DjVuLibre的不错的DjVu文件查看器.它有一个选项可以查看Foreground或Background对象.因此,在挖掘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搜索,然后单击第1个"快速查看"链接结果然后你可以阅读PDF.原始PDF不再可用.
我将不得不自己做更多的测试.我想知道商业应用的许可费用是多少?
我希望这能比我的第一次尝试更好地回答你的问题.当它第一次出现时,我看了一个DjVu并因某些原因忽略了这个功能.
附加信息
我上传了大约10份文件并得出以下结论.DjVu无法将300dpi黑白图像处理为前/后层.黑白转换图像的整个页面仅包含在前景中.当您上传到any2djvu时,它首先会询问您是否是黑白或彩色文档.当您选择B/W时,您将失去支持我的理论的后台处理选项,自动背景分离不支持B/W. 前/后分离适用于灰度和彩色图像.我没有足够的扫描图像来测试它的表现如何.
不支持B/W分离的事实可能表明DjVu多年前在文档管理行业没有起步的部分原因.当它第一次出现时,大多数计算机都有足够的时间处理,校正和去除黑白图像.因此,执行灰度或彩色图像处理是不可行的,并且出于速度原因,大多数解决方案都是B/W. 如果我们当时正在使用彩色图像,那么DjVu将是一个非常好的解决方案.DjVu在发布时,在扫描OCR的应用程序时没有多大用处.即使在今天,这也是一项伟大的技术.