Как я могу использовать ImageJ в качестве библиотеки для отдельного приложения Java?
В обычном Java-приложении у меня есть BufferedImage, с которым я бы хотел манипулировать с ImageJ. У меня есть макрос, который именно то, что мне нужно выполнить. Я подозреваю, что первым шагом является создание объекта ImagePlus, но я не уверен, как выполнить макрос объекта ImagePlus из Java. В разделе 7.3 учебника ImageJ найдено здесь:
Если вы решите использовать ImagePlus в качестве внутреннего формата изображения, вы также можете использовать все плагины и макросы из дистрибутива ImageJ, а также все другие плагины ImageJ.
Но не указывает, как это сделать. Если кто-то может объяснить, как, или указать мне на ресурс, который это делает, я бы очень признателен.
Ответы
Ответ 1
Следующий сайт описывает ImageJ API с примерами: http://albert.rierol.net/imagej_programming_tutorials.html#ImageJ основы программирования
Примеры включают чтение изображений, обработку пикселов и т.д. Ну, я думаю, вам также потребуется многократно использовать документацию API.
Ответ 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");
Надеюсь, это поможет вам начать:)
Ответ 3
Вот реализация проекта с открытым исходным кодом с помощью imagej для веб-приложения для обмена фотографиями.
Используйте это как ссылку для реализации imagej apis в своем приложении
http://www.gingercart.com/Home/java-snippets/create-image-thumbnail-in-java-using-imagej-api