macro 'Particle Analysis Test'; var x,y,rows,columns,maxradius,radius:integer; begin SaveState; rows:=5; columns:=5; maxradius:=rows*columns; SetForegroundColor(255); SetBackgroundColor(0); SetNewSize(columns*maxradius*2+20,rows*maxradius*2+20); MakeNewWindow('Objects'); radius:=1; for y:=0 to columns-1 do for x:=0 to rows-1 do begin MakeOvalRoi(x*maxradius*2+10,y*maxradius*2+10,radius*2,radius*2); Fill; radius:=radius+1; end; KillRoi; SetParticleSize(1,9999); LabelParticles(true); OutlineParticles(true); SetOptions('Area, Perimeter, Major, Minor'); AnalyzeParticles; SetUser1Label('Perim.d'); SetUser2Label('Area'); for radius:=1 to maxradius do begin rUser1[radius]:=2*3.14159*radius; rUser2[radius]:=3.14159*sqr(radius); end; ShowResults; RestoreState; end; macro 'Count Particles at Random Locations'; var n,i,width,height,PicID,nLocations:integer; size:real; begin RequiresVersion(1.44); nLocations:=10; size:=0.25; n:=1; GetPicSize(width,height); PicID:=PicNumber; SetUser1Label('Count'); SetOptions('User1'); for i:=1 to nLocations do begin SelectPic(PicID); MakeRoi((1-size)*width*random,(1-size)*height*random,size*width,size*height); Duplicate('Temp');; SetDensitySlice(255,255); AnalyzeParticles; Dispose; rUser1[i]:=rCount; end; KillRoi; SetCounter(nLocations); ShowResults; end; macro 'Analyze Particles and Compute Sum'; var i:integer; begin AnalyzeParticles; SetUser1Label('Sum'); for i:=1 to rCount do begin rUser1[i]:=rMean[i]*rArea[i]; end; UpdateResults; end;