Login  Register

Re : how to count the number of peaks in a dynamic profile

Posted by paul_rostand on Apr 28, 2011; 11:10am
URL: http://imagej.273.s1.nabble.com/how-to-count-the-number-of-peaks-in-a-dynamic-profile-tp3684809p3684813.html

thank you Fred and Christophe,
 
<<<fred ; increace the step of iteration just increase the amount of peaks
<<<Christophe : the problem with Process>Find Maxima ist that i have a file with more than 1000pictures with and without holes in the middle and all with different noise tolerance. and I want to use the fact that the hole is always in the middle of 2 maximas as criteria to sort my pictures before stacking.
 
regards


De : lechristophe [via ImageJ] <[hidden email]>
À : paul_rostand <[hidden email]>
Envoyé le : Jeu 28 avril 2011, 12h 12min 01s
Objet : Re: how to count the number of peaks in a dynamic profile

Dear Paul,

There is a Process>Find Maxima command in ImageJ that works quite well to
detect peaks in images. Did you try to use it ?

Christophe

On Thu, Apr 28, 2011 at 11:19, paul_rostand <[hidden email]> wrote:

> Hello imagej users,
>
> I am trying to count and locate the peaks in a picture.for this purpose I
> use
> the following macro wich is an adaptation of the FindMaxPixelLocation
> macro. for
> peak identification I just compare the values of consecutives points
>  (curve[i+1]) && (curve[i+1]>curve[i+2])
>
> curve[i] being the pixel value at location i of the loop. but as result I
> get 39
> peaks instead of 4 (see the attached profile)
>
> I would like to know what I am doing wrong and if anyone has another easier
> way
> to solve this problem
> thanks in advance
> regards
>
> Paul Rostand
>
>    showStatus("Finging pixel with largest value...");
>    max = 0;
>     peak=0;
>    width = getWidth();
>  height = getHeight();
>    for (y=0; y<height; y++) {
>       if (y%20==0) showProgress(y, height);
>       for (x=0; x<50; x++) {
>           value = getPixel(x,y);
>           if (value>max) {
>               max = value;
>               xmax = x;
>               ymax = y;
>           }
>       }
>   }
> print("A pixel with the max value ("+max+") is located at "+xmax+","+ymax);
>
> curve=newArray(width);
>             threshold = 0.9*max;           // define the threshold used to
> count
> the peaks
>
>            for (y=0; y<height; y++) {
>  if (y%20==0) showProgress(y, height);
>             for (x=0; x<50; x++) {
>                  value = getPixel(x,y);
>    if (value>threshold) {
>    for (i=0;i<48;i++) {
>    curve[i]=value;
>              if((curve[i]<curve[i+1]) && (curve[i+1]>curve[i+2])){
>                                                   peak=peak+1;
>    }
>  }
>           }
>       }
>   }
> print("the number of peaks is "+peak+");
>
> --
> View this message in context:
> http://imagej.588099.n2.nabble.com/how-to-count-the-number-of-peaks-in-a-dynamic-profile-tp6312558p6312558.html
> Sent from the ImageJ mailing list archive at Nabble.com.
>



If you reply to this email, your message will be added to the discussion below:
http://imagej.588099.n2.nabble.com/how-to-count-the-number-of-peaks-in-a-dynamic-profile-tp6312558p6312709.html
To start a new topic under ImageJ, email [hidden email]
To unsubscribe from ImageJ, click here.