# pyewt.boundaries2d module

pyewt.boundaries2d.UnSymmetrize_Fourier(in_array, extH, extW)

  Removes the extension of the spectrum that was introduced to symmetrize the spectrum.

  Parameters:

    - in_array (ndarray) – Magnitude of the spectrum to unsymmetrize.

    - extH (bool or int) – 1 (or True) if there is vertical extension, 0 otherwise.

    - extW (bool or int) – 1 (or True) if there is horizontal extension, 0 otherwise.

  Returns:

    - usym (ndarray) – Spectrum with original size.

    - Author (Jerome Gilles)

    - Institution (San Diego State University)

    - Version (1.0 (07/15/2025))

pyewt.boundaries2d.ewt2d_EmpiricalLaw(histo)

  Classifies minima curve lengths into two classes using an empirical law.

  Parameters:

    - L (1D ndarray) – Set of minima curve lengths.

    - ind (2D ndarray) – Original index of each minima (shape: [n_minima, 2]).

  Returns:

    - bounds (ndarray) – Detected bounds (subset of ind).

    - th (float) – Detected scale threshold.

    - Author (Jerome Gilles)

    - Institution (San Diego State University)

    - Version (1.0 (07/15/2025))

pyewt.boundaries2d.ewt2d_HalfNormalLaw(L, Lmax)

  Classifies minima curve lengths into two classes using a half-normal law.

  Parameters:

    - L (1D ndarray) – Set of minima curve lengths.

    - ind (2D ndarray) – Original index of each minima (shape: [n_minima, 2]).

    - Lmax (float) – Maximum possible length of a minima curve.

  Returns:

    - bounds (ndarray) – Detected bounds (subset of ind).

    - th (float) – Detected scale threshold.

    - Author (Jerome Gilles)

    - Institution (San Diego State University)

    - Version (1.0 (07/15/2025))

pyewt.boundaries2d.ewt2d_OtsuMethod(histo)

  Classifies the set of minima curve lengths stored in histo into two classes using Otsu’s method. Returns the boundaries which are supposed to be the meaningful ones.

  Parameters:

    histo (ndarray) – Set of minima curve lengths (1D array).

  Returns:

    - bounds (ndarray) – Detected bounds (subset of ind).

    - th (int) – Detected scale threshold.

    - Author (Jerome Gilles)

    - Institution (San Diego State University)

    - Version (1.0 (07/05/2025))

pyewt.boundaries2d.ewt2d_fourier_extend(f, n)

  Extend image by periodization

  Parameters:

    - f (-) – image to extend

    - n (-)

  Returns:

    - fe – extended image

  Return type:

    ndarray

  Notes

  This function extend the provided image f by periodization on a strip of width n around the image

  Author: Jerome Gilles Institution: San Diego State University Version: 1.0 (02/11/2025)

pyewt.boundaries2d.ewt2d_fourier_shrink(f, n)

  shrink image

  Parameters:

    - f (-) – image to extend

    - n (-)

  Returns:

    - fe – shrinked image

  Return type:

    ndarray

  Notes

  This function shrinks the provided image f by removing a strip of width n around the image

  Author: Jerome Gilles Institution: San Diego State University Version: 1.0 (02/11/2025)

pyewt.boundaries2d.ewt2d_get_maxima(absff, params, extH, extW)

  Build a scale-space representation and post-process detected maxima. Discards maxima near the edge and, if needed, the center.

  Parameters:

    - absff (2D ndarray) – Input image (Fourier spectrum).

    - params (dict) – Empirical wavelet parameters (see Notes below).

    - extH (int) – 1 if height was extended, 0 otherwise.

    - extW (int) – 1 if width was extended, 0 otherwise.

  Returns:

    - centers (ndarray) – Coordinates of significant maxima.

    - plane (ndarray) – Scale-space plane.

  Notes

  params[“typeDetect”] must be set to the wanted classification

    method. The available options are: - “otsu” : uses Otsu’s technique - “halfnormal” : uses a half-normal law to model the problem - “empiricallaw” : uses the data itself to build a model of the problem - “kmeans” : uses kmeans to classify

  params[“t”]: is the initial scale for the Gaussian kernel (0.8 is a good default value). params[“kn”]: is the kernel size for the Gaussian kernel (6 is a good default value). params[“niter”]: is the number of iterations through the scales (4 is a good default value). params[“edge”]: is the size (in pixels) of the strip to ignore at the edge of the image (0 is no strip). params[“includeCenter”]: if 1, the center of the image is included in the scale space maxima (0 is not included).

  Author: Jerome Gilles Institution: San Diego State University Version: 1.0 (07/15/2025)

pyewt.boundaries2d.ewt2d_gss(f, params)

  Build a 2D Gaussian scale space and detect local maxima.

  Parameters:

    - f (2D ndarray) – Input image (Fourier spectrum).

    - params (dict) – Parameters for the scale space and maxima detection (see Notes below).

  Returns:

    - worm_bound (ndarray) – Coordinates of the detected maxima.

    - Th (float) – Threshold for maxima detection.

    - plane (ndarray) – Scale-space plane.

  Notes

  params[“typeDetect”] must be set to the wanted classification

    method. The available options are: - “otsu” : uses Otsu’s technique - “halfnormal” : uses a half-normal law to model the problem - “empiricallaw” : uses the data itself to build a model of the problem - “kmeans” : uses kmeans to classify

  params[“t”]: is the initial scale for the Gaussian kernel (0.8 is a good default value). params[“kn”]: is the kernel size for the Gaussian kernel (6 is a good default value). params[“niter”]: is the number of iterations through the scales (4 is a good default value).

  Author: Jerome Gilles Institution: San Diego State University Version: 1.0 (07/21/2025)

pyewt.boundaries2d.ewt2d_kmeansdetect(L)

  Detect meaningful minima using kmeans (for 1D L).

  Parameters:

    L (1D ndarray) – Vector of the length of the minima curves.

  Returns:

    - th (float) – Detected scale threshold.

    - Author (Jerome Gilles)

    - Institution (San Diego State University)

    - Version (1.0 (07/15/2025))

pyewt.boundaries2d.ewt2d_localmax(f)

  Find local maxmima on a 2D image

  Parameters:

    f (-) – image on which to perform the detection.

  Returns:

    - - tag (ndarray) – image with pixels either at 0 or 1 where 1 means a local maximum has been detected.

    - Author (Jerome Gilles)

    - Institution (San Diego State University)

    - Version (1.0 (02/11/2025))

pyewt.boundaries2d.ewt2d_plot_ssplane(plane)

  Plot 3D scale-space

  Parameters:

    - matrix (- plane DOK sparse) – contains the 3D scale-space domain

    - Author (Jerome Gilles)

    - Institution (San Diego State University)

    - Version (1.0 (02/11/2025))

pyewt.boundaries2d.ewt2d_spectrum_regularize(f, params)

  2D Spectrum regularization

  Parameters:

    - f (ndarray) – matrix containing the spectrum

    - params (Dictionary) – must have params[“reg”] to be set to one of the methods listed below must have params[“lengthfilter”] to be set for all methods must have params[“sigmafilter”] to be set to the standard deviation for the Gaussian method

  Returns:

    ff – matrix containing the regularized spectrum

  Return type:

    ndarray

  Notes

  This function regularizes f using the selected method set in params[“reg”]. The available methods are: - “none” : does nothing, returns f - “gaussian” : convolve f with a Gaussian of length and standard

  > deviation given by params[“lengthfilter”] and params[“sigmafilter”], respectively

  - “average”: convolve f with a constant filter of length given

      by params[“lengthfilter”]

  Author: Jerome Gilles Institution: San Diego State University Version: 1.0 (02/09/2025)

pyewt.boundaries2d.plot_scalespace_maxima(f, maxima, logtag=True, title='Scale-space Maxima', radius=1)

  Plot the scale-space maxima on the Fourier spectrum

  Parameters:

    - f (-) – Input image

    - maxima (-) – Arrays that contain the coordinates of the detected maxima in the Fourier domain.

    - logtag (-) – Indicate if the logarithm of the spectrum should be used for the background.

    - title (-) – Title to be plotted on the figure. The default title is “Scale-space Maxima”.

    - radius (-) – Radius of the maxima to be plotted in pixels. The default value is 1 pixel.

  Notes

  This function plots the position of the detected maxima in the Fourier domain via the scale-space method.

  Author: Jerome Gilles Institution: San Diego State University Version: 1.0 (07/15/2025)

pyewt.boundaries2d.symmetrize_fourier(f)

  Symmetric extension of the Fourier spectrum

  Parameters:

    f (ndarray) – input 2D Fourier spectrum

  Returns:

    - sym (ndarray) – symmetrized Fourier spectrum

    - extH (True/False) – indicate a vertical extension

    - extW (True/False) – indicate an horizontal extension

  Notes

  This function returns a symetrized Fourier spectrum by properly extending the expected directions. It returns a new spectrum where each dimension is odd.

  Author: Jerome Gilles Institution: San Diego State University Version: 1.0 (02/09/2025)