14

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

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

但并未说明如何操作。如果有人可以解释如何,或者将我指向一个资源,我将非常感激。

4

3 回答 3

12

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

这些示例包括读取图像、处理像素等。好吧,我想您还需要大量使用API 文档

于 2012-05-20T22:29:01.163 回答
6

Here is a sample code that opens an image, inverts it and saves it back:

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");

And here's a sample code that shows how to manipulate an image to make it grayscale:

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");

I hope it helps you get started :)

于 2015-10-16T18:15:06.597 回答
2

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

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

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

于 2013-08-22T02:43:54.570 回答