Translate

2017年2月11日土曜日

輝点の検出を楽に行う

FindMaximaを使う

[Process -> FindMaxima]を使うと、画面上の輝点などを一瞬で検出してくれるため、輝点追跡をする際の初期パラメータを与えるためなどに重宝する。Pluginから当然利用することが可能。

MaximumFinderクラス

FindMaximaを使うには、MaximumFinderクラスを利用する。
import ij.plugin.filter.MaximumFinder;
import java.awt.Polygon;

...

ImageProcessor ip = imp.getProcessor();
double tol = 10;

MaximumFinder mf = new MaximumFinder();
Polygon mp = mf.getMaxima(ip, tol, true);

...
  1. まず、MaximumFidnerオブジェクトを作成する。
  2. 輝点の検出には、MaximumFinderのメソッドgetMaxima(ImageProcessor ip, double tolerance, boolean excludeOnEdges)を使う。ipで現在開いている画像のImageProcessorを渡す。toleranceは輝点を検出する際の閾値を決める。excludeOnEdgesは、画面のエッジ上の輝点を検出するかどうか決める。
  3. 検出された輝点の位置情報を、java.awt.Polygon型として返す。
    • 格納される順番は、輝度値が高い順番となる
  4. 輝点の座標情報には以下のようにアクセスすればよい
int ind = 0;
double x = mp.xpoints[ind];
doulbe y = mp.ypoints[ind];
Polgonのメンバ変数であるxpoints, ypointsを使えば、座標データに直接アクセスすることが可能である。これを利用すれば、輝点の自動検出や輝点のトラッキングなどに応用することが可能となる。
以上

0 件のコメント:

コメントを投稿