java中的开源图像处理库
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2407113/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
open source image processing lib in java
提问by user267067
Can anyone suggest a good open-source image processing library in Java? I want to develop an OMR reader using it.
谁能推荐一个好的 Java 开源图像处理库?我想开发一个使用它的 OMR 阅读器。
回答by RTBarnard
There are a number of options out there, each with their own features and drawbacks. If you want to discuss your needs in more detail, I can touch on the specific attributes of each library as it relates to your project:
有很多选择,每个都有自己的特点和缺点。如果你想更详细地讨论你的需求,我可以谈谈每个库的特定属性,因为它与你的项目相关:
- ImageJ - http://rsbweb.nih.gov/ij/index.html-- Note that ImageJ is primarily a self-contained application. However, the underlying API is very easy to use in your own applications without having to invoke the GUI.
- Fiji - http://pacific.mpi-cbg.de/wiki/index.php/Main_Page-- This is ImageJ with a number of additional features. I have no personal experience with this library, but it looks promising.
- JAI - http://www.oracle.com/technetwork/articles/javaee/jai-142803.html-- This is Sun's image processing Java offering. Limited in functionality, but it can be used as a basis for more powerful libraries.
- jMagick - http://www.jmagick.org/index.html-- This is just a Java wrapper around ImageMagick and uses JNI to interface with the ImageMagick API
- Apache Sanselan - http://commons.apache.org/imaging/-- This library mostly does image IO, but it has a handful of features that can facilitate image analysis.
- JIU (Java Imaging Utilities) - http://sourceforge.net/projects/jiu/-- A Java library for loading, editing, analyzing and saving pixel image files.
- Endrov - http://www.endrov.net/wiki/index.php?title=Main_Page-- Endrov is a multi-purpose image analysis program. I get the impression that the underlying API is usable outside of the application, but it also seems that not everything is implemented in Java. I have no personal experience with this library and am only throwing it in because it seems to have a number of useful features.
- ImageJ - http://rsbweb.nih.gov/ij/index.html- 请注意,ImageJ 主要是一个独立的应用程序。但是,底层 API 非常易于在您自己的应用程序中使用,而无需调用 GUI。
- 斐济 - http://pacific.mpi-cbg.de/wiki/index.php/Main_Page- 这是具有许多附加功能的 ImageJ。我对这个库没有个人经验,但它看起来很有希望。
- JAI - http://www.oracle.com/technetwork/articles/javaee/jai-142803.html- 这是 Sun 的图像处理 Java 产品。功能有限,但可以用作更强大库的基础。
- jMagick - http://www.jmagick.org/index.html- 这只是 ImageMagick 的 Java 包装器,并使用 JNI 与 ImageMagick API 接口
- Apache Sanselan - http://commons.apache.org/imaging/- 这个库主要做图像 IO,但它有一些可以促进图像分析的功能。
- JIU (Java Imaging Utilities) - http://sourceforge.net/projects/jiu/- 一个用于加载、编辑、分析和保存像素图像文件的 Java 库。
- Endrov - http://www.endrov.net/wiki/index.php?title=Main_Page-- Endrov 是一个多用途的图像分析程序。我的印象是底层 API 可以在应用程序之外使用,但似乎并不是所有的东西都是用 Java 实现的。我对这个库没有个人经验,只是因为它似乎有许多有用的功能而把它扔进去。
回答by Joseph
回答by Paul Bartlett
I would suggest using JAI, as mentioned, for the imaging side, but for writing an OMR application you will need template registration. This can be achieved using OpenCv. This works with Java (as well as many other languages and platforms).
如前所述,我建议在成像方面使用 JAI,但要编写 OMR 应用程序,您将需要模板注册。这可以使用 OpenCv 来实现。这适用于 Java(以及许多其他语言和平台)。
Without good image registration, regardless of image processing library, you will end up missing some of the marks on some scans, as you will find that some scans are shifted due to the way scanners work.
如果没有良好的图像配准,无论图像处理库如何,您最终都会在某些扫描中遗漏某些标记,因为您会发现由于扫描仪的工作方式,某些扫描会发生偏移。