import java.util.Vector; //导入方法依赖的package包/类
/**
* Takes the processed image and writes information on each particle (blob) into
* the global array, in order of overall particle area.
*/
public void updateParticalAnalysisReports ()
{
if (this.camera.gethaveCamera() == true
&& this.currentImage != null)
{
final int numParticles = NIVision
.imaqCountParticles(this.currentImage, 0);
// Measure particles and sort by particle size
final Vector particles = new Vector();
if (numParticles > 0)
{
for (int particleIndex = 0; particleIndex < numParticles; particleIndex++)
{
final ParticleReport particle = new ParticleReport();
particle.PercentAreaToImageArea = NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_AREA_BY_IMAGE_AREA);
particle.area = NIVision.imaqMeasureParticle(
this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_AREA);
particle.ConvexHullArea = NIVision
.imaqMeasureParticle(
this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_CONVEX_HULL_AREA);
particle.boundingRectTop = (int) NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_BOUNDING_RECT_TOP);
particle.boundingRectLeft = (int) NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_BOUNDING_RECT_LEFT);
particle.boundingRectBottom = (int) NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_BOUNDING_RECT_BOTTOM);
particle.boundingRectRight = (int) NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_BOUNDING_RECT_RIGHT);
particle.boundingRectWidth = (int) NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_BOUNDING_RECT_WIDTH);// par.boundingRectRight
// -
// par.boundingRectLeft;
particle.center_mass_x = (int) NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_CENTER_OF_MASS_X);
particle.center_mass_y = (int) NIVision
.imaqMeasureParticle(this.currentImage,
particleIndex, 0,
NIVision.MeasurementType.MT_CENTER_OF_MASS_Y);
particle.imageWidth = NIVision
.imaqGetImageSize(this.currentImage).width;
particles.add(particle);
}
particles.sort(null);
}
this.reports = new ParticleReport[particles.size()];
particles.copyInto(this.reports);
particles.clear();
}
}