1

ImageJ 1.45 / ImageJA の ParticleAnalyzer を使って画像処理アプリを作ろうとしています。アルゴリズムは私の Mac で完全にテストされましたが、実行可能な jar を Hadoop クラスターに出荷すると、awt ヘッドレス例外がスローされ続けました。私はオンラインで調べてこれらのアプローチを試しましたが、どれも問題を解決しませんでした!

http://imagej.1557.n6.nabble.com/Headless-ImageJ-td3699125.html

また、その場で例外をキャッチしようとしましたが、ParticleAnalyzer が実際には実行されていないことがわかりました (0 粒子を返し続けましたが、これは間違っています。私の mac ではゼロ以外の結果が返されます!)。これは Java コードのセクションで、Hadoop ログからコピーした例外が続きます。

Hadoop で ImageJ を使用した成功例があれば、具体的なコード例を教えてください。

前もって感謝します。

try{
            ParticleAnalyzer pa = new ParticleAnalyzer(options, measurements,
                rt, THRES_AREA, 10000, 0, 1);

            pa.setup("victor", result);
            pa.run(result.getProcessor());
        }catch(Exception e){
            System.out.println("engine: awt error!");
    }

java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
    at java.awt.Window.<init>(Window.java:431)
    at java.awt.Frame.<init>(Frame.java:403)
    at java.awt.Frame.<init>(Frame.java:368)
    at ij.gui.GenericDialog.<init>(GenericDialog.java:87)
    at ij.plugin.filter.ParticleAnalyzer.showDialog(ParticleAnalyzer.java:265)
    at ij.plugin.filter.ParticleAnalyzer.setup(ParticleAnalyzer.java:220)
.....
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1083)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)
4

1 に答える 1

1

フィジーのプロジェクトは、ImageJ でヘッドレス操作をより実現可能にするために多大な努力を払ってきましたが、まだいくつかの制限があります。

主な解決策は次の 3 つです。

  1. --headlessフラグを使用してフィジーを実行する
  2. Xvfbを使用する
  3. 問題のスクリプトまたはプラグインを書き直します

とはいえ、この場合、「問題のスクリプトまたはプラグイン」は実際には ImageJ の Particle Analyzer に組み込まれているため、この--headlessアプローチは機能するはずです。

詳細については、ヘッドレス モードに関する記事を参照してください。

于 2012-10-30T17:34:16.327 に答える