【问题标题】:How can I use ImageJ as a library for a separate Java application?如何将 ImageJ 用作单独 Java 应用程序的库?
【发布时间】:2012-05-20 18:43:55
【问题描述】:

在常规 Java 应用程序中,我有一个 BufferedImage,我想用 ImageJ 来操作它。我有一个正是我需要执行的宏。我怀疑第一步是创建一个 ImagePlus 对象,但我不确定如何从 Java 中在 ImagePlus 对象上运行宏。 here 找到的 ImageJ 教程的第 7.3 节说:

如果您决定使用 ImagePlus 作为您的内部图像格式,您还可以使用所有插件 和来自 ImageJ 发行版的宏以及所有其他 ImageJ 插件。

但没有说明怎么做。如果有人可以解释如何做,或者将我指向一个资源,我将非常感激。

【问题讨论】:

    标签: java image-processing imagej


    【解决方案1】:

    以下站点通过示例描述 ImageJ API:http://albert.rierol.net/imagej_programming_tutorials.html#ImageJ 编程基础

    示例包括读取图像、处理像素等。好吧,我想您还需要经常使用API documentation

    【讨论】:

    • 这太完美了! IJ.run 正是我要找的。非常感谢。
    【解决方案2】:

    这是一个示例代码,用于打开图像,将其反转并保存回来:

    import ij.ImagePlus;
    import ij.io.FileSaver;
    import ij.process.ImageProcessor;
    
    ImagePlus imgPlus = new ImagePlus("path-to-sample.jpg");
    ImageProcessor imgProcessor = imgPlus.getProcessor();
    imgProcessor.invert();
    FileSaver fs = new FileSaver(imgPlus);
    fs.saveAsJpeg("path-to-inverted.jpg");
    

    下面是一个示例代码,展示了如何操作图像以使其成为灰度:

    BufferedImage bufferedImage = imgProcessor.getBufferedImage();
    for(int y=0;y<bufferedImage.getHeight();y++)
    {
        for(int x=0;x<bufferedImage.getWidth();x++)
        {
            Color color = new Color(bufferedImage.getRGB(x, y));
            int grayLevel = (color.getRed() + color.getGreen() + color.getBlue()) / 3;
            int r = grayLevel;
            int g = grayLevel;
            int b = grayLevel;
            int rgb = (r<<16)  | (g<<8)  | b;
            bufferedImage.setRGB(x, y, rgb);
        }
    }
    ImagePlus grayImg = new ImagePlus("gray", bufferedImage);
    fs = new FileSaver(grayImg);
    fs.saveAsJpeg("path-to-gray.jpg");
    

    我希望它可以帮助您入门:)

    【讨论】:

    • 这也适用于 PNG 吗?或其他图像格式?
    • 我在寻找灰度转换时发现了这些示例。这种灰度转换也可以直接使用ImageConverter 并用ImageConverter converter = new ImageConverter(imgPlus)converter.convertToGray8(); 替换第一个示例中的两条ImageProcessor 行来完成
    【解决方案3】:

    这是一个使用 imagej 的开源项目实现,用于照片共享网络应用程序。

    将此作为参考在您的应用程序中实现 imagej api

    http://www.gingercart.com/Home/java-snippets/create-image-thumbnail-in-java-using-imagej-api

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 2021-10-28
      相关资源
      最近更新 更多