pyr.buildOctaves(img, startScale, scaleSpaceLevels, octaveSigma, minimumRequiredPixelsize);
globalFeaturePoints = new ArrayList<FeaturePoint>();
// Generate featurePoints from each scalespace.
for (int on = 0; on < pyr.octaves.size(); ++on) {
OctaveSpace osp = pyr.octaves.get(on);
ArrayList<ScalePeak> peaks = osp.findPeaks(dogThresh);// 寻找图片中的极值点
ArrayList<ScalePeak> peaksFilted = osp.filterAndLocalizePeaks(peaks, maximumEdgeRatio, dValueLowThresh,
scaleAdjustThresh, relocationMaximum);
// 先将要处理的图层上所有象素的梯度大小和方向计算出来
osp.pretreatMagnitudeAndDirectionImgs();
ArrayList<FeaturePoint> faturePoints = osp.makeFeaturePoints(peaksFilted, peakRelThresh, scaleSpaceLevels,
octaveSigma);
osp.clear();
globalFeaturePoints.addAll(faturePoints);
}
return (globalFeaturePoints.size());
}