http://imagej.273.s1.nabble.com/Calculating-Encircled-Energy-tp5006279p5006292.html
This is classical aperture photometry: try the Göttingen astronomy tools:
> Hi Angel,
>
> ImageJ does not support 'soft' boundaries for selections or partially
> selected pixels.
>
> What you can do:
>
> (i) Enlarge the image with nearest neighbor interpolation. When enlarging
> by a factor large enough (say, 4 or more), you will get a reasonable
> approximation to subpixel resolution.
>
> (ii) Write a plugin, or if you have not too large circles and not too many
> of them, a macro will be good enough. Roughly like this (does not work for
> RGB):
>
> xc=3.2;yc=5.2; //center (integer values are defined as pixel center)
> radius=2.6; //radius
> //if you want to see the selection:
> //makeOval(xc+0.5-radius,yc+0.5-radius,2*radius,2*radius);
>
> sum=0;
> area=0;
> for (y=floor(yc-radius-0.5); y<=ceil(yc+radius+0.5); y++)
> for (x=floor(xc-radius-0.5); x<=ceil(xc+radius+0.5); x++) {
> r=sqrt((x-xc)*(x-xc)+(y-yc)*(y-yc));
> if (r<=radius-0.5) {
> sum+=getPixel(x,y);
> area++;
> } else if (r<=radius+0.5) {
> weight = (radius+0.5)-r;
> sum+=getPixel(x,y)*weight;
> area+=weight;
> }
> }
> print ("sum="+d2s(sum,2)+", area="+d2s(area,2));
>
> function ceil(x) {
> return -floor(-x);
> }
>
> Note that the area won't be exactly the area of a circle, r^2*pi but
> slightly more, because it does not accurately calculate the intersection
> of a circle and the pixel. It simply uses pixel weights decreasing from 1
> to 0. If the exact circle line passes through the center of a pixel, it
> gets a weight of 0.5.
>
> Michael
> _______________________________________________________________________
>
> On Sun, January 26, 2014 07:24, angel.leigh wrote:
>> Hi
>>
>> I've been calcuating the energy in some images using progressively larger
>> circlar regions, and summing the pixels. However, I would like to be able
>> to count the "edge" pixels. If a pixel falls half-in and half-out, to
>> count
>> half the value of the pixel. This is more important because I am
>> calculating the centriod, which is never perfectly centered on a pixel.
>>
>> I know that somebody has to have already figured this out, but I can't
>> seem
>> to find it. I've searched "encircled energy," "point spread function,"
>> and
>> "power in the bucket" but can't seem to find one that partially counts
>> border pixels.
>>
>> If anyone could point me in the right direction I would appreciate it.
>>
>> thx,
>> Angel
>>
>>
>>
>> --
>> View this message in context:
>>
http://imagej.1557.x6.nabble.com/Calculating-Encircled-Energy-tp5006279.html>> Sent from the ImageJ mailing list archive at Nabble.com.
>>
>> --
>> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>>
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html