Trouver des bords avec ImageJ par programmation

je veux utiliser l'option find edges du ImageJ , avoir le tableau edges-found et l'enregistrer dans un autre fichier de façon programmatique.

ImagePlus ip1 = IJ.openImage("myimage.jpg");
ImageProcessor ip = new ColorProcessor(ip1.getWidth(), ip1.getHeight());
ip.findEdges();

cependant, la fonction findEdges est abstraite et je ne peux pas avoir l'image de bord-trouvé.

EDIT:

j'ai écrit les lignes suivantes:

ip.findEdges();
BufferedImage bimg = ip.getBufferedImage();

cependant, quand j'essaie d'imprimer sur les valeurs RGB du BufferedImage, il n'imprime que "-16777216" pour chaque pixel rgb.

2
demandé sur İsmet Alkan 2012-05-18 16:23:07

2 réponses

OK, j'ai eu la solution, le problème était que je n'ai pas relié le Colorprocesseur avec l'image.

ColorProcessor ip = new ColorProcessor(ImageIO.read(new File("my_image.jpg")));
ip.findEdges();
BufferedImage bimg = ip.getBufferedImage();
2
répondu İsmet Alkan 2014-10-10 08:09:16

ImageProcessor est une classe abstraite, qui permet aux classes dérivées de fournir l'implémentation appropriée. Vous devez déclarer ip comme type ColorProcessor :

ColorProcessor ip = new ColorProcessor(ip1.getWidth(), ip1.getHeight()); 
ip.findEdges();
0
répondu Attila 2012-05-18 12:32:24