在java中的开源image processing库
任何人都可以在Java中提出一个好的开源image processing库吗? 我想开发一个使用它的OMR阅读器。
有很多select,每个都有自己的特点和缺点。 如果你想更详细地讨论你的需求,我可以触及每个图书馆与你的项目有关的特定属性:
- ImageJ – http://rsbweb.nih.gov/ij/index.html – 请注意,ImageJ主要是一个独立的应用程序。 但是,底层API非常易于在您的应用程序中使用,而无需调用GUI。
- 斐济 – http://pacific.mpi-cbg.de/wiki/index.php/Main_Page – 这是ImageJ与一些额外的function。 我对这个图书馆没有个人经验,但看起来很有希望。
- JAI – http://www.oracle.com/technetwork/articles/javaee/jai-142803.html – 这是Sun的image processingJava产品。 function有限,但它可以作为更强大的图书馆的基础。
- jMagick – http://www.jmagick.org/index.html – 这只是一个围绕ImageMagick的Java包装,它使用JNI与ImageMagick API
- Apache Sanselan – http://commons.apache.org/imaging/ – 这个库主要做图像IO,但它有一些可以促进图像分析的function。
- JIU(Java影像工具) – http://sourceforge.net/projects/jiu/ – 用于加载,编辑,分析和保存像素图像文件的Java库。
- Endrov – http://www.endrov.net/wiki/index.php?title=Main_Page – Endrov是一个多用途的图像分析程序。 我觉得底层的API可以在应用程序之外使用,但是似乎并不是所有的东西都是用Java实现的。 我没有这个图书馆的个人经验,只是把它扔进去,因为它似乎有一些有用的function。
JAI
马文image processing框架
和简单的: imgscalr
我会build议使用JAI,如上所述,成像方面,但编写一个OMR应用程序,您将需要模板注册。 这可以使用OpenCv来实现。 这适用于Java(以及许多其他语言和平台)。
如果没有良好的图像配准,无论image processing库如何,您最终都会在某些扫描中丢失一些标记,因为您会发现由于扫描仪的工作方式,某些扫描会发生移位。