MaximumFinder mf = new MaximumFinder()
となる。メソッドである、getMaximaもfindMaximaも引数としては
java.awt.Polygon getMaxima(ImageProcessor ip, double tolerance, boolean excludeOnEdges)
ByteProcessor findMaxima(ImageProcessor ip, double tolerance, int outputType, boolean excludeOnEdges)
であり、impはない。しかし、findMaximaの中ではimpを参照していることから、mfにimpを入れないといけない。
そこで、改めてメソッドを眺めてみると、
int setup(java.lang.String arg, ImagePlus imp)
あった!ありました!たまに見るsetupメソッドだが、MaximumFinderで唯一impをパラメータとしている。ソースを見てみると、
public int setup(String arg, ImagePlus imp) {
this.imp = imp;
return flags;
}
だけ。impをメンバ変数のimpに代入するだけのメソッドである。これを使えばよい。
まとめると、non-rectangularなRoiを解析範囲として指定するためには、
imp.setRoi(ovalRaoi);
MaximumFinder mf = new MaximumFinder()
mf.setup("", imp);
poly = mf.getMaxima(ip, tolerance, false);
とすればよい。imp.setRoi(ovalRoi)の時点で、ipにもovalRoiがセットされている。
以上がMaximumFinderでnon-rectangularな解析範囲をする方法だ(と思う)。
ここまでたどり着くの相当疲れた。。