Подтвердить что ты не робот

Как я могу использовать ImageJ в качестве библиотеки для отдельного приложения Java?

В обычном Java-приложении у меня есть BufferedImage, с которым я бы хотел манипулировать с ImageJ. У меня есть макрос, который именно то, что мне нужно выполнить. Я подозреваю, что первым шагом является создание объекта ImagePlus, но я не уверен, как выполнить макрос объекта ImagePlus из Java. В разделе 7.3 учебника ImageJ найдено здесь:

Если вы решите использовать ImagePlus в качестве внутреннего формата изображения, вы также можете использовать все плагины и макросы из дистрибутива ImageJ, а также все другие плагины ImageJ.

Но не указывает, как это сделать. Если кто-то может объяснить, как, или указать мне на ресурс, который это делает, я бы очень признателен.

4b9b3361

Ответ 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");

Надеюсь, это поможет вам начать:)