Bonjour à tous,

Je dois faire un matching de deux images d'artères cérébrales, pour cela je souhaite utiliser le plugin blockmatching_-2.1.1 de Stephan Saalfeld.

Je veux appeler ce plugin dans un projet Eclipse en Java. Comme je ne souhaite pas afficher les fenêtres, j'ai choisi d'appeler le plugin dans une macro IJM en batch mode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
setBatchMode(true);
options = getArgument;
 
run("Extract Block Matching Correspondences", options+" layer_scale=1 search_radius=50 block_radius=50 resolution=24 minimal_pmcc_r=0.10 maximal_curvature_ratio=1000 maximal_second_best_r/best_r=1 use_local_smoothness_filter approximate_local_transformation=Affine local_region_sigma=65 maximal_local_displacement=12 maximal_local_displacement=3 export");
 
setBatchMode(false);
J'appelle cette macro avec la méthode runMacroFile en Java.

Les autres librairies référencées dans le projet sont :
  • ij-1.49v.jar
  • image_edge.jar
  • Volume_Viewer-2.01.1.jar
  • mpicbg-1.0.1.jar
  • mpicbg_-1.0.1.jar


Le projet ne trouve pas la classe ij.plugin.BlockMatching_ExtractPoinRoi.
J'obtiens l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Plugin or class not found: "ij.plugin.BlockMatching_ExtractPoinRoi"
(java.lang.ClassNotFoundException: ij.plugin.BlockMatching_ExtractPoinRoi)
J'appelle pourtant deux autres plugins de la même façon, par l'intermédiaire d'une macro, et cela fonctionne très bien.
La classe est présente dans le jar, dans le package mpicbg.ij.plugin.
Le jar est dans un dossier "lib" et je passe en argument au projet "-Dplugins.dir=/Users/fiorinelli/workspace/strokeDetection/lib".
J'ai également référencé le plugin comme librairie du projet, il est donc présent dans le build path.

J'ai essayé la commande "Extract SIFT Correspondences" à la place de "Extract Block Matching Correspondences", et cela fonctionne parfaitement. Quand j'exécute la même commande directement dans Fiji, sur les mêmes images, cela fonctionne aussi. J'ai essayé d'enlever la répétition de l'argument "maximal_local_displacement" dans la macro mais cela ne change rien, j'obtiens la même erreur.

Je suppose que c'est une erreur de configuration de mon projet dans Eclipse mais je ne vois pas d'où cela vient.
Si quelqu'un peut m'éclairer, merci beaucoup.

Eva