Comment installer et utiliser Jython pour écrire un plugin ImageJ

Original: http://marcora.caltech.edu/jython_imagej_howto.htm


par Edoardo « Dado » Marcora (mis à jour le 2005-10-31)
Table des matières


  1. Introduction
  2. Étape 1: Installer ImageJ
  3. Étape 2: Installer Jython
  4. Étape 3: Sensibiliser les ImageJ Jython
  5. Étape 4: Écrire un plugin d’ImageJ avec Jython
  6. Ressources connexes
Introduction


  • Si vous souhaitez étendre les fonctionnalités le libre et le merveilleux traitement d’image ImageJ et le programme d’analyse, mais vous avez peur d’écrire vos propres plugins ImageJ parce qu’il faut écrire le code Java compliqué Eh bien, il n’y a pas besoin d’avoir peur de plus ! Vous pouvez utiliser Python plutôt comme une alternative à mi-chemin entre le pas si puissant langage macro ImageJ et Java.
  • Ce HOWTO vous guidera dans les étapes de configuration ImageJ pour être au courant de Jython, la mise en oeuvre Java de Python 2.1. Cela signifie que vous serez capable d’écrire des plugins ImageJ utilisant Python, un langage de programmation puissant et pourtant simple et convivial.
  • Ce HOWTO suppose que vous utilisez Windows sur votre ordinateur. Toutefois, il devrait vous aider à démarrer dans le bon sens, quelle que soit la plate-forme que vous utilisez (je l’ai eu à travailler sur mon ordinateur Debian Linux et devrait être de même pour Mac OS X, c’est surtout une question de changer les emplacements de répertoire/dossier).
  • L’ancienne version de ce HOWTO (qui utilise une approche différente et plus lourde à l’intégration de ImageJ et Jython) est toujours disponible ici.
  • Pour un tutoriel sur la façon d’écrire ImageJ plugins goto ici.
  • Vous pouvez également consulter la vaste bibliothèque de plugins ImageJ, pour avoir une idée de ce qu’il est possible de faire lorsque vous maîtrisez la puissance de ImageJ à l’aide de plugins.
  • Cette approche de sensibiliser ImageJ du Jython pour pouvoir utiliser Python comme langage de programmation pour le développement de plugins ImageJ peut être facilement reproduit en utilisant d’autres langues (par exemple, Ruby) qui ont des versions basées sur Java et intégrables de leurs interprètes (p. ex., JRuby, Sleep, BeanShell, Groovy et autres).
  • N’hésitez pas à me contacter si vous avez toute question, commentaire ou suggestion.
Étape 1: Installer ImageJ


  • Téléchargez et installez ImageJ sur votre ordinateur en suivant les instructions d’installation spécifiques à votre plate-forme (Windows, Mac OS, Linux, etc.).
  • Ce HOWTO suppose que vous installez ImageJ dans C:\ImageJ.
Étape 2: Installer Jython


  • Télécharger jython-21.class dans un répertoire/dossier sur votre ordinateur.
  • Lancer l’installateur de Jython, à l’aide de l’interpréteur Java qui s’exécute ImageJ :
    • Ouvrez une fenêtre de commande.
    • Changer le répertoire/dossier de travail pour lequel vous avez téléchargé le fichier jython-21.class.
    • Type C:\ImageJ\jre\bin\java -cp . jython-21.
  • Suivez les instructions de l’installeur de Jython et installer Jython dans C:\Jython21\.
Étape 3: Sensibiliser les ImageJ Jython


  • En bref, le but ici est d’ajouter C:\Jython21\jython.jar à la variable classpath de l’interpréteur Java qui s’exécute ImageJ.
  • Faire ImageJ (v1.31 ou plus) au courant de Jython, ouvrir le dossier/répertoire de C:\ImageJ, faites un clic droit sur le raccourci de ImageJ (un microscope avec une flèche) et changer le “cible:” champ des propriétés « Raccourci » pour :
  • C:\ImageJ\jre\bin\javaw.exe-mx256m -cp ij.jar ; C:\Jython21\jython.jar ij. ImageJ
  • Le – mx256m commutateur spécifie que ImageJ aurez à disposition un maximum de 256 Mo de RAM. Le commutateur -cp spécifie l’instruction classpath mentionnés ci-dessus, qui devrait inclure l’emplacement de Jython (jython.jar) en plus de celle de ImageJ (ij.jar). En outre, s’assurer que le “commencer:” champ des propriétés afin de « Raccourci » est défini sur C:\ImageJ.
  • Si vous utilisez une version récente de ImageJ (v1.32 ou plus récent), alors tout ce que vous avez à faire est d’ajouter C:\Jython21\jython.jar au -cp commutateur dans le fichier C:\ImageJ\ImageJ.cfg.
Étape 4: Écrire un plugin d’ImageJ avec Jython


  • Assez avec cette installation cr@#&p ! Nous allons écrire un plugin d’ImageJ à l’aide de la syntaxe de Python ravissante!!!
  • Tout d’abord, créez un fichier texte nommé Hello_World.py dans le répertoire de plugins ImageJ C:\ImageJ\plugins.
  • Ouvrez Hello_World.py avec votre éditeur de texte favori, insérez le code Python suivant et enregistrez le fichier.

  • Ensuite, créez un fichier texte nommé Hello_World.java dans le même répertoire.
  • Ouvrez Hello_World.java avec votre éditeur de texte favori, insérez le code Java suivant et enregistrez le fichier.


  • Lancer une instance prenant en charge les Jython ImageJ et compiler des Hello_World.java à l’aide de la commande de menu “Plugins > compiler et exécuter…”. Une boîte de message disant « Hello World! » devrait apparaître !
  • ImageJ redémarrage et une nouvelle commande nommée « Hello World » doivent se présentes sous le menu « Plugins ». Pour la tester, exécutez le “Plugins > Bonjour tout le monde commande de menu et la boîte de message susmentionné devraient apparaître à nouveau.
  • Comme vous pouvez le voir, Hello_World.java est pour la plupart des code de passe-partout (seulement des pièces marquées en rouge doivent être personnalisés) et il n’existe que pour soutenir les Hello_World.py. Écrire une fois, compiler et oubliez-le. Toute la programmation de « vraie » se faite en Hello_World.py.
  • Félicitations… vous avez écrit votre premier plugin ImageJ utilisant Jython ! Maintenant, vous pouvez revenir en arrière et modifier Hello_World.py et voir le changements prennent effet immédiatement sans avoir à recompiler quoi que ce soit ou même redémarrer ImageJ n’est pas terrible!!! :)
  • Bien sûr, ce n’est qu’un exemple simple, mais n’oubliez pas que, par l’intermédiaire de Jython, vous avez un accès complet à la puissance brute de ImageJ (plus ses plugins et macros) et à l’élégance et la facilité d’utilisation de Python et de sa vaste bibliothèque.
Une approche similaire est utilisée pour créer un filtre de plugin ImageJ
  • Tout d’abord, créez un fichier texte nommé Invert_Filter.py dans le répertoire de plugins ImageJ C:\ImageJ\plugins.
  • Ouvrez Invert_Filter.py avec votre éditeur de texte favori, insérez le code Python suivant et enregistrez le fichier.



Ensuite, créez un fichier texte nommé Invert_Filter.java dans le même répertoire.
Ouvrez Invert_Filter.java avec votre éditeur de texte favori, insérez le code Java suivant et enregistrez le fichier.



  • Lancer une instance prenant en charge les Jython ImageJ et compiler des Invert_Filter.java à l’aide de la commande de menu “Plugins > compiler et exécuter…”. Une boîte de message disant: « Il n’y a aucuns images ouvertes » devrait apparaître ! N’oubliez pas qu’un filtre de plugin ImageJ nécessite une image à agir en conséquence ; donc, ne vous inquiétez pas et lisez la suite !
  • ImageJ redémarrage et une nouvelle commande nommée « Inverser le filtre » devraient se présentes sous le menu « Plugins ». Pour la tester, ouvrir une image (elle doit être une image en échelle de gris pour ce filtre particulière) et exécutez le “Plugins > inverti filtre commande de menu, qui devrait inverser l’image actuelle.
  • Comme vous pouvez le voir, Invert_Filter.java est pour la plupart des code de passe-partout (seulement des pièces marquées en rouge doivent être personnalisés) et il n’existe que pour soutenir les Invert_Filter.py. Écrire une fois, compiler et oubliez-le. Toute la programmation de « vraie » se faite en Invert_Filter.py.
  • Espérons que cela aide à vous aider à démarrer. Surtout, amusez-vous scripting ImageJ avec Python!!! :)
Ressources connexes


  • Albert Cardona a écrit un plugin d’ImageJ qui le rend vraiment facile, encore plus facile que ce que j’ai décrit ci-dessus, d’intégrer des plugins de Jython avec ImageJ. Il a également écrit un interpréteur Jython qui s’intègre avec ImageJ. Vous pouvez les trouver ici.
  • Ici, ce site a un éditeur de Jython/interprète qui s’intègre avec ImageJ.

Comments are closed.