首页 文章

什么是最好的java图像处理库/方法? [关闭]

提问于
浏览
230

我正在使用JAI媒体api和ImageMagick?

ImageMagick有一些可扩展性问题,而基于JNI的JMagick也没有吸引力 . 与ImageMagick相比,JAI在进行大小调整操作时效果不佳 .

有没有人知道任何优秀的工具,无论是开源还是商业本土java并提供高质量的结果?

11 回答

  • 2

    ImageJ,自吹自擂

    世界上最快的纯Java图像处理程序

    它可以在另一个应用程序中用作库 . 它的架构并不精彩,但它可以完成基本的图像处理任务 .

  • 2

    我知道这个问题很老了,但是随着新软件的出现,它确实有助于获得一些可能对人们感兴趣的项目的新链接 .

    imgscalr是纯Java图像大小调整(以及简单的操作,如填充,裁剪,旋转,变亮/调光等),使用起来非常简单 - 单个类包含一组简单的图形操作,所有操作都定义为静态方法你传递一张图片并取回一个结果 .

    使用该库的最基本示例如下所示:

    BufferedImage thumbnail = Scalr.resize(image, 150);
    

    使用一些质量调整等生成图像缩略图的更典型用法可能如下所示:

    import static org.imgscalr.Scalr.*;
    
    public static BufferedImage createThumbnail(BufferedImage img) {
        // Create quickly, then smooth and brighten it.
        img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);
    
        // Let's add a little border before we return result.
        return pad(img, 4);
    }
    

    所有图像处理操作都使用原始Java2D管道(在主要平台上加速硬件),并且不会引入通过JNI调用代码中的库争用的痛苦 .

    imgscalr也被部署在很多地方的大规模制作中 - 包含AsyncScalr类使其成为任何服务器端图像处理的完美插件 .

    您可以使用最高的ULTRA_QUALITY模式对图像质量进行大量调整,以便在速度和质量之间进行权衡,从而提供比GIMP的Lancoz3实现更好的缩放结果 .

  • 3

    另一个不错的选择:Marvin

  • 9

    我认为是'm not a Java guy, but OpenCV is great for my needs. Not sure if it fits yours. Here'是一个Java端口:http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html

  • 5

    Processing是新的但非常非常好 .

  • 1

    尝试使用Catalano Framework .

    关键点:

    • 像AForge.NET/Accord.NET这样的架构 .

    • 使用相同的代码,桌面和Android在两个环境中运行 .

    • 并行包含多个过滤器 .

    • 发展充满活力 .

    Catalano Framework是Java和Android的科学计算框架 . 该项目最初是作为.NET的AForge.NET和Accord.NET框架的许多功能的初始端口,但随着更高级的功能正在稳步增长,这些功能现在正在这些项目之间共享 .

    例:

    FastBitmap fb = new FastBitmap(bitmap);
    
    Grayscale g = new Grayscale();
    g.applyInPlace(fb);
    
    Threshold t = new Threshold(120);
    t.applyInPlace(fb);
    
    bitmap = fb.toBitmap();
    
    //Show the result
    
  • 4

    最好的方法是使用GraphicsMagick Image Processing Systemim4java作为Java的命令行界面 .

    GraphicsMagick有很多优点,但对所有人来说都是:

    • GM用于处理世界上最大的照片网站(例如Flickr和Etsy)的数十亿个文件 .
  • 84

    http://im4java.sourceforge.net/ - 如果你贵're running linux forking a new process isn' .

  • 128

    对于商业工具,您可能想尝试Snowbound .

    http://www.snowbound.com/

    我对它们的体验有点过时,但我发现它们的Java Imaging API比JAI更容易使用,速度更快 .

    他们的客户支持和代码示例也非常好 .

  • 8

    RoboRealm视觉软件list提及了许多其他非基于Java的库中的JHLabsNeatVision .

  • 29

    我不能说它是"best"库,但我认为你可以试试这个:http://algart.net/java/AlgART/它是一个开源的Java库,支持带有不同类型元素的通用"smart"数组和矩阵(从1位到64位浮点) ,包括2D,3D和多维图像处理和其他算法,使用数组和矩阵 . 不幸的是,它现在没有足够的演示和示例,但另一方面,它包含许多JavaDoc . 它位于商业软件(SIMAGIS)的基础上几年,但现在它是开源的 .

相关问题