2013-05-07 2 views
2

매크로를 실행해야하지만 이미지를 표시하고 싶지 않습니다. imp.show()를 호출하지 않으면 ImageJ가 콘솔에 인쇄합니다. 열린 이미지가 없습니다. 그렇다면 이미지를 표시하지 않고 매크로를 실행하려면 어떻게해야합니까? 미리 감사드립니다. 당신이 plugins/의 하위 폴더에 파일을 넣어 매크로 ImageJ에 명령을하면ImageJ 자동 모드 - 이미지를 열지 않고 처리

public class MyPlugin implements PlugIn { 

public static void MyPlugin(String path) { 
    System.setProperty("plugins.dir", "libraries/plugins"); 
    System.setProperty("macros.dir", "libraries/macros"); 
    Opener opener = new Opener(); 
    ImagePlus imp = opener.openImage(path); 
    imp.show(); 
    IJ.run(imp, "Skeletonize", ""); 
    runMacroFile("libraries/macros/FindJunctions", ""); 
    imp.close(); 
} 
+0

매크로 파일'libraries/macros/FindJunctions'의 내용은 무엇입니까? [ImageJ 메일 링리스트] (http://rsbweb.nih.gov/ij/list.html)에 질문하는 것을 고려해보십시오. 여기보다 많은 ImageJ 사용자와 전문가의 관심을 받게 될 것입니다. –

답변

2
  • 실행할 수 있어야합니다 (예 : plugins/macros/Find_Junctions.ijm을의 ImageJ documentation 참조)

    IJ.run(imp, "Find Junctions", "");

    여기에서 imp은 (는) 현재 이미지입니다. 그러나 매크로 자체가 setBatchMode(true)으로 설정되어 있지 않으면 매크로에서 명령이 이미지를 표시하는 것을 방지하지 못합니다.

  • 이미지를 표시하지 않는 더 안전한 방법은 매크로를 호출하지 않고 매크로의 모든 명령을 플러그인에 포함시키는 것입니다. 플러그인 모드에서 macro recorder을 실행하여 필요한 명령 구문을 가져올 수 있습니다.

코드 예제가 컴파일되지 않으며 호출 할 매크로에 대한 세부 정보를 제공하지 않기 때문에 더 이상 당신을 도울 수 없습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 파일을 plugins /에 넣으려고 시도하고 IJ.run (imp, "Find Junctions", ""}에 명령을 변경하려고했으나 여전히 인쇄합니다 : 열려있는 이미지가 없습니다.이 페이지의 매크로 파일은 http : // /image.bio.methods.free.fr/ImageJ/?Angiogenesis-Analyzer-for-ImageJ&artpage=3-5&lang=en 이름을 변경했으며 매크로의 맨 위에 "findTheNodes();"및 "analyseFromATree (); "이 두 가지 기능이 필요하기 때문에. – cernover

+0

Gilles Carpentier의 _Angiogenesis Analyzer_는 ImageJ 도구 세트로서 사용자 인터페이스의 존재에 크게 의존하므로 이미지를 열고 표시해야합니다. 당신이 원하는 것은'findTheNodes()'와'analyseFromATree()'함수를 파고 본질적으로 ** 자바로 명령을 재 구현하는 것입니다. 그러나 자신의 코드에서 이미 바이너리 스켈레톤 매크로 바로 앞에서'Skeletonize'를 실행하고 있습니다.), 프리콘 검사를 다루는 꽤 많은 매크로 코드를 생략 할 수 있습니다 ditions ... –