在常规Java应用程序中,我有一个BufferedImage,我想用ImageJ操作。我有一个宏,这正是我需要执行的。我怀疑第一步是创建一个ImagePlus对象,但我不知道如何在Java中运行ImagePlus对象上的宏。 ImageJ教程的第7.3节发现here说:
如果您决定使用ImagePlus作为内部图像格式,您也可以使用所有插件 和ImageJ发行版中的宏以及所有其他ImageJ插件。
但不表示该怎么做。如果有人可以解释如何,或指向我的资源,我会非常感激。
答案 0 :(得分:12)
以下网站使用示例描述了ImageJ API:http://albert.rierol.net/imagej_programming_tutorials.html#ImageJ编程基础
示例包括阅读图像,处理像素等。我想您还需要使用API documentation。
答案 1 :(得分:5)
以下是打开图像,反转并保存图像的示例代码:
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");
我希望它可以帮助你开始:)
答案 2 :(得分:2)
这是一个开源项目实现,其中包含用于照片共享网络应用的imagej。
使用此作为参考,在您的应用程序中实现imagej apis
http://www.gingercart.com/Home/java-snippets/create-image-thumbnail-in-java-using-imagej-api