2012-03-30 79 views
1

我正在一个项目中,我需要突出显示一对文本扫描图像之间的差异。opencv或imagemagick突出差异

示例图像是herehere

我正在构建一个基于HTML,JS的web应用程序。 我发现openCV确实支持突出显示2张图片之间的差异。 另外我看到imageMagick也有这样的支持。 openCV是否支持自动注册图像? 是否有一个用于openCV的JS模块? 哪一个更适合我的目的?

+0

这个任务是不平凡的。 – karlphillip 2012-03-30 18:38:57

回答

2

1.简单的方法:

假设图像被完全对齐并且类似地照亮:由像素从另一像素减去一个图像,则阈值的结果,筛选出嘈杂斑点,并选择最大的。适合学校项目

2.有点复杂: 对齐图像,然后找到一种方法来统一照度,然后应用简单的方法。 如何对齐:

  • 查找两个图像中的文本区域,因为它比文件颜色更暗。
  • 查找其角
  • 使用getPerspectiveTransform()查找图像之间的转换。
  • warpPerspective()一个图像到另一个。

注册两幅图像的另一种方法是通过特征匹配。它在OpenCV中有相当广泛的支持。而findHomography()将从一组更大的匹配点估计两幅图像之间的姿势。

3.标准答案: 对齐图像。 使用OCR引擎将其转换为文本。 比较两幅图像中的文字。

+0

thanks.Is找到一个openCV库的一部分? – code4fun 2012-03-30 19:22:21

+0

好的,函数名是'getPerspectiveTransform()'; – Sam 2012-03-31 11:21:45

+0

,实际上我在使用ImageMagick方面取得了一些初步的成功,但现在我正在处理一些更复杂的文本图像,比如这里的一个。 HTTP:// imgur。com/YJekv,Xpebk#0你可以建议openCV的特征匹配是否可以用于这些图像,因为这些图像中的字母大小也不同 – code4fun 2012-05-15 21:13:01

1

那么,除了vasile提供的巨大帮助,你还需要web应用程序的答案。 为了使其在服务器中工作,您可能需要一个文件上载表单,以及服务器应用算法的答案。根据您拥有的服务器限制,您可以通过多种方式来完成此操作。如果你可以运行命令行参数,你可能需要在opencv中实现高亮算法,并将两个输入文件作为输出文件传递给程序。应该使用php脚本上传文件,调用命令行程序,并将结果输出给用户。 另一种方法可能是在诸如Apache Tomcat的Web容器中使用Java和JavaCV。

最好的问候, 丹尼尔