画像処理をするためのソフトといったら、 Photoshop やGimpがまず思い浮かぶでしょう。 ただ、これらのソフトは主に写真の補正や画像の合成 などといったものに使われ、顕微鏡映像の解析や ゲルの解析や細胞のカウントなどいわゆる 科学的な画像の操作には不十分なところがあります。 もちろん、上記のソフトでできないことはありません。 しかし、科学的な画像解析には、以前から NIH Imageという Mac用のソフトがよく使われていました。
最近になって、このNIH Imageをどのプラットフォームでも動くようにしたい ということで、NIH Imageの作者が同じ機能を持ったソフトを Javaで書きました。それが、今回紹介する ImageJです。
詳しい特徴はImageJのページを見ていただければわかりますが、 そのなかから少し抜粋します。
要は、色々読めてそれなりに速く、分析もいろいろできるということです。 また、Plug-inも豊富にあり、自分でもそれなりに簡単にかけるので、 欲しいと思った機能を自分で作ることもできます。
もし、今使っているソフトに物足りなさを感じているなら、 ImageJで実際に自分でプログラムを書いて分析するというのはどうでしょうか。 画像ファイルのフォーマットに気を取られることなく、自由に 画像処理ができます。
2. It's aimed low. In the original Java white paper, Gosling explicitly says
Java was designed not to be too difficult for programmers used to C. It was
designed to be another C++: C plus a few ideas taken from more advanced
languages. Like the creators of sitcoms or junk food or package tours, Java's
designers were consciously designing a product for people not as smart as
them. Historically, languages designed for other people to use have been bad:
Cobol, PL/I, Pascal, Ada, C++. The good languages have been those that were
designed for their own creators: C, Perl, Smalltalk, Lisp.
-- Paul Graham
-- Java's Cover ( http://www.paulgraham.com/javacover.html )
<krang> Hey all, what's the best way to call one perl script from
another? I was thinking I'd just use 'system("script.pl");'
<dazjorz> krang: yeah, that, or do "script.pl"
<dazjorz> krang: depends on how seperated you want them to be
<krang> dazjorz: you mean just a line that has "script.pl"; written
on it?
<Khisanth> you need the do as well
<dazjorz> krang: no, exactly this: do "script.pl";
<rindolf> krang: system is usually what you want.
<rindolf> krang: normally require or use are preferable to do
<dazjorz> rindolf: that's for modules, isn't it ?
<rindolf> dazjorz: yes.
<dazjorz> wait, I think require "script.pl" would work too
<rindolf> dazjorz: and doing code is not such a good idea.
<dazjorz> rindolf: hmm?
<krang> rindolf: what is doing anyway?
<rindolf> dazjorz: I mean "perldoc -f do"-ing code.
<rindolf> krang: do()-ing
<rindolf> krang: it reads the file and evaluates it.
<rindolf> krang: perldoc -f do.
<dazjorz> rindolf: ah
<dazjorz> rindolf: do {}
* rindolf would rather be doing hot models than doing code.
:-)
<dazjorz> rindolf: yeah, do BLOCK is quite useless
<dazjorz> heh
<rindolf> dazjorz: you can do my $var = do { ... }
* dazjorz would rather be doing GumbyBRAIN than doing code
<GumbyBRAIN> and doing code is not be in the days of immortality!
<rindolf> dazjorz: or eval { ... }
<rindolf> dazjorz: heh.
<rindolf> It's hard to do code.
<dazjorz> do $model;
<dazjorz> eh.. sorry, do $hotmodel;
<rindolf> "Are you into my brother?"
<rindolf> "No I'm totally into Perl."
<krang> ah ok, I see. Thanks guys!
<rindolf> krang: yw.
<dazjorz> heh :-)
<rindolf> If you want a configuration file, you should be using
something like INI, YAML, etc.
<rindolf> XML perhaps.
<rindolf> Something.
<rindolf> Apache-like config.
<dazjorz> Apache-like is very strong but hard to parse, right ?
<dazjorz> Loading and saving configuration never looks good,
especially when it's XML
<dazjorz> the code to load and save is ugly.
-- Sextalk among Perl cultists
-- #perl, Freenode