Comment puis-je utiliser ImageJ comme bibliothèque pour une application Java distincte?


Dans une application Java régulière, j'ai un BufferedImage que je voudrais manipuler avec ImageJ. J'ai une macro qui est exactement ce que je dois exécuter. Je soupçonne que la première étape consiste à créer un objet ImagePlus, mais je ne sais pas comment exécuter ensuite une macro sur l'objet ImagePlus à partir de Java. La section 7.3 du tutoriel ImageJ trouvé ici dit:

Si vous décidez d'utiliser ImagePlus comme format d'image interne, vous pouvez également utiliser tous les plugins et les macros de la distribution ImageJ ainsi que tous les autres plugins ImageJ.

, Mais n'indique pas comment le faire. Si quelqu'un pouvait expliquer comment, ou me diriger vers une ressource qui le fait, je l'apprécierais beaucoup.

Author: dda, 2012-05-20

3 answers

Le site suivant décrit l'API ImageJ avec des exemples: http://albert.rierol.net/imagej_programming_tutorials.html#ImageJ bases de programmation

Les exemples incluent la lecture d'images, le traitement de pixels, etc. Eh bien, je suppose que vous devrez également utiliser beaucoup la documentation API.

 12
Author: Hakan Serce, 2012-05-20 22:29:01

Voici un exemple de code qui ouvre une image, l'inverse et l'enregistre:

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

Et voici un exemple de code qui montre comment manipuler une image pour la rendre en niveaux de gris:

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

J'espère que cela vous aidera à démarrer:)

 5
Author: Meysam, 2015-10-16 19:05:44

Voici une implémentation de projet opensource avec imagej pour l'application Web de partage de photos.

Utilisez ceci comme référence pour implémenter les API imagej dans votre application

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

 2
Author: Mouli, 2013-08-22 02:43:54