From: ImageAnalyst on
Bruno:
How is this function any different than built-in morphological erosion
and dilation, which are local min and max respectively? Is it faster
or something? The description says "The filter computes the maxima of
an array ...." but doesn't mention minima, except if you infer minima
from the name of the function "Min/Max Filter" and where it mentions
erosion and dilation.

Rahul mentioned that he needed to compile it (tripped him up because
it wasn't mentioned in the description I guess). Any reason why you
can't compile it and include the DLL in the download?
Regards,
ImageAnalyst

From: Bruno Luong on
ImageAnalyst

The difference of minmaxfilt to Matlab erosion/dilatation are:
- non-requirement of image processing toolbox
- working on rectangular windows only
- used Lemire's algorithm, extremely fast for *large* window
- able to return the indexes of minima and maxima

As I mentioned earlier, MINMAXFILT is a must when using with large window. In the normal morphology implementation, during the scan of the window, the search of local minimum and maximum uses (N-1)^d comparison, where N is the size of the window, d is the dimension. In the FEX, only 3^d comparisons are used for MIN and MAX. Such algorithm is even more pertinent for streaming signal acquired with high frequency (the FEX interfact mfile is not structured to treat streaming signal, but the algorithm is out there and it is up to user who adapt to his own use).

I don't believe I'm allowed to put compiled codes in the FEX. Once I have been asked to remove compiled MEX file from my submission. However I have seen some compiled files from other persons come in FEX, but his happens before Mathwork policy kicks in, or either the author has some sort of special treatment from FEX owner. It is not my case. ;-( LOL

The MEX compilation requirement is written in the REQUIREMENT section, in the Content file, in the H1 help files, in the package installation file. It will be done automatically if the provided either two test files are run. It still can be missed by very hurry users, I must admit...

Bruno
From: Gallon on
On Sep 25, 2:25 pm, Rahul <nos...(a)nospam.invalid> wrote:
> I have a numerical (x,y,z) dataset with multiple peaks (local maxima) in it
> that I want to detect. I've seen many routines for (x,y) peak detection but
> none that I know so far do it for (x,y,z) data.
>
> Any routines around that I am missing?
>
> --
> Rahul

I hope I don't get in any trouble for a non-Octave solution, but I've
used this for locating extrema in many dimensions, quite successfully:

http://search.cpan.org/~aqumsieh/AI-Genetic-0.05/Genetic.pm

Sincerely,

Greg Allen
Not-affiliated with any respectable organization.


From: raghu330 on
Hi there!
In matlab, there is a function called 'findpeaks()', that finds all
the peaks (local max/min) in a timeseries data.. I see that octave
usually doesn't come with a builtin function for 'findpeaks'.. but you
could try and tweak it for octave.. you might be able to find the src
on google..
Cheers & ATB
Raghu


On Sep 26, 1:42 pm, Gallon <greggal...(a)gmail.com> wrote:
> On Sep 25, 2:25 pm, Rahul <nos...(a)nospam.invalid> wrote:
>
> > I have a numerical (x,y,z) dataset with multiple peaks (local maxima) in it
> > that I want to detect. I've seen many routines for (x,y) peak detection but
> > none that I know so far do it for (x,y,z) data.
>
> > Any routines around that I am missing?
>
> > --
> > Rahul
>
> I hope I don't get in any trouble for a non-Octave solution, but I've
> used this for locating extrema in many dimensions, quite successfully:
>
> http://search.cpan.org/~aqumsieh/AI-Genetic-0.05/Genetic.pm
>
> Sincerely,
>
> Greg Allen
> Not-affiliated with any respectable organization.

From: Bruno Luong on
Sorry, there is an error in my previous post. The number of comparisons of the Lemire's algorithm (FEX) is

3*d for MIN & MAX
2*d for MIN alone
2*d for MAX alone

(vs (N-1)^d for brute force scan)

The complexity overhead constant is larger.

>
> As I mentioned earlier, MINMAXFILT is a must when using with large window. In the normal morphology implementation, during the scan of the window, the search of local minimum and maximum uses (N-1)^d comparison, where N is the size of the window, d is the dimension. In the FEX, only 3*d comparisons are used for MIN and MAX.

Bruno

PS: ImageAnalyst, thanks your note about the inaccurate description of maxima.