Algorithmes (cdl.algorithms
)#
Ce paquet contient les algorithmes utilisés par le projet DataLab. Ces algorithmes opèrent directement sur des tableaux NumPy et sont conçus pour être utilisés dans le pipeline DataLab, mais peuvent également être utilisés indépendamment.
Voir aussi
Le module cdl.algorithms
est le point d’entrée principal pour les algorithmes DataLab lors de la manipulation de tableaux NumPy. Voir le module cdl.computation
pour les algorithmes qui opèrent directement sur les objets DataLab (c’est-à-dire cdl.obj.SignalObj
et cdl.obj.ImageObj
).
Les algorithmes sont organisés en sous-paquets en fonction de leur objectif. Les sous-paquets suivants sont disponibles :
cdl.algorithms.signal
: Algorithmes de traitement du signalcdl.algorithms.image
: Algorithmes de traitement d’imagecdl.algorithms.datatypes
: Algorithmes de conversion de type de donnéescdl.algorithms.coordinates
: Algorithmes de conversion de coordonnées
Algorithmes de traitement du signal#
- cdl.algorithms.signal.normalize(yin: ndarray, parameter: Literal['maximum', 'amplitude', 'area', 'energy', 'rms'] = 'maximum') ndarray [source]#
Normaliser le tableau d’entrée à un paramètre donné.
- Paramètres:
yin – Tableau d’entrée
parameter – Paramètre de normalisation. Par défaut : « maximum »
- Renvoie:
Tableau normalisé
- cdl.algorithms.signal.fft1d(x: ndarray, y: ndarray, shift: bool = True) tuple[ndarray, ndarray] [source]#
Calculer la FFT sur les données X,Y.
- Paramètres:
x – Données X
y – Données Y
shift – Décaler la fréquence nulle vers le centre du spectre. Par défaut : True.
- Renvoie:
Données X, Y (tuple)
- cdl.algorithms.signal.ifft1d(x: ndarray, y: ndarray, shift: bool = True) tuple[ndarray, ndarray] [source]#
Calculer la iFFT sur les données X,Y.
- Paramètres:
x – Données X
y – Données Y
shift – Décaler la fréquence nulle vers le centre du spectre. Par défaut : True.
- Renvoie:
Données X, Y (tuple)
- cdl.algorithms.signal.magnitude_spectrum(x: ndarray, y: ndarray, log_scale: bool = False) tuple[ndarray, ndarray] [source]#
Calculer le spectre de magnitude.
- Paramètres:
x – Données X
y – Données Y
log_scale – Utiliser une échelle logarithmique. Par défaut : False.
- Renvoie:
Spectre de magnitude (données X, Y)
- cdl.algorithms.signal.phase_spectrum(x: ndarray, y: ndarray) tuple[ndarray, ndarray] [source]#
Calculer le spectre de phase.
- Paramètres:
x – Données X
y – Données Y
- Renvoie:
Spectre de phase en degrés (données X, Y)
- cdl.algorithms.signal.psd(x: ndarray, y: ndarray, log_scale: bool = False) tuple[ndarray, ndarray] [source]#
Calculer la densité spectrale de puissance (PSD), en utilisant la méthode de Welch.
- Paramètres:
x – Données X
y – Données Y
log_scale – Utiliser une échelle logarithmique. Par défaut : False.
- Renvoie:
Données X, Y (tuple)
- Type renvoyé:
Power Spectral Density (PSD)
- cdl.algorithms.signal.sort_frequencies(x: ndarray, y: ndarray) ndarray [source]#
Trier à partir des données X,Y en calculant FFT(y).
- Paramètres:
x – Données X
y – Données Y
- Renvoie:
Fréquences triées par ordre croissant
- cdl.algorithms.signal.peak_indices(y, thres: float = 0.3, min_dist: int = 1, thres_abs: bool = False) ndarray [source]#
Routine de détection de pics.
Recherche l’index numérique des pics dans y en prenant sa première différence d’ordre. En utilisant les paramètres thres et min_dist, il est possible de réduire le nombre de pics détectés. y doit être signé.
- Paramètres:
y (ndarray (signed)) – Données d’amplitude 1D à rechercher pour les pics.
thres (float between [0., 1.]) – Seuil normalisé. Seuls les pics dont l’amplitude est supérieure au seuil seront détectés.
min_dist (int) – Distance minimale entre chaque pic détecté. Le pic avec l’amplitude la plus élevée est préféré pour satisfaire cette contrainte.
thres_abs (boolean) – Si True, la valeur thres sera interprétée comme une valeur absolue, au lieu d’un seuil normalisé.
- Renvoie:
Tableau contenant les index numériques des pics qui ont été détectés
- Type renvoyé:
ndarray
- cdl.algorithms.signal.xpeak(x: ndarray, y: ndarray) float [source]#
Retourne la position X du pic par défaut (en supposant un seul pic).
- Paramètres:
x – Données X
y – Données Y
- Renvoie:
Position X du pic
- cdl.algorithms.signal.interpolate(x: ndarray, y: ndarray, xnew: ndarray, method: Literal['linear', 'spline', 'quadratic', 'cubic', 'barycentric', 'pchip'], fill_value: float | None = None) ndarray [source]#
Interpoler les données.
- Paramètres:
x – Données X
y – Données Y
xnew – Nouvelles données X
method – Méthode d’interpolation
fill_value – Valeur de remplissage. Par défaut : None. Cette valeur est utilisée pour remplir les points demandés en dehors de la plage de données X. Elle n’est utilisée que si l’argument de méthode est “linear”, “cubic” ou “pchip”.
- Renvoie:
Données Y interpolées
- cdl.algorithms.signal.windowing(y: ndarray, method: Literal['barthann', 'bartlett', 'blackman', 'blackman-harris', 'bohman', 'boxcar', 'cosine', 'exponential', 'flat-top', 'hamming', 'hanning', 'lanczos', 'nuttall', 'parzen', 'rectangular', 'taylor', 'tukey', 'kaiser', 'gaussian'] = 'hamming', alpha: float = 0.5, beta: float = 14.0, sigma: float = 7.0) ndarray [source]#
Appliquer une fenêtre aux données d’entrée.
- Paramètres:
x – Données X
y – Données Y
method – Fonction de fenêtrage. Par défaut : « hamming ».
alpha – Paramètre de la fenêtre de Tukey. Par défaut : 0.5.
beta – Paramètre de la fenêtre de Kaiser. Par défaut : 14.0.
sigma – Paramètre de la fenêtre gaussienne. Par défaut : 7.0.
- Renvoie:
Données Y fenêtrées
- class cdl.algorithms.signal.FitModel[source]#
Classe de base du modèle de régression
- class cdl.algorithms.signal.GaussianModel[source]#
Modèle de régression gaussien à 1 dimension
- class cdl.algorithms.signal.LorentzianModel[source]#
Modèle de régression lorentzien à 1 dimension
- cdl.algorithms.signal.find_zero_crossings(y: ndarray) ndarray [source]#
Find the left indices of the zero-crossing intervals in the given array.
- Paramètres:
y – Tableau d’entrée.
- Renvoie:
An array of indices where zero-crossings occur.
- cdl.algorithms.signal.find_x_at_value(x: ndarray, y: ndarray, value: float) ndarray [source]#
Rechercher la valeur x où la valeur y est la plus proche de la valeur donnée en utilisant une interpolation linéaire pour déduire la valeur x précise.
- Paramètres:
x – Données X
y – Données Y
value – Valeur à rechercher
- Renvoie:
Valeur X où la valeur Y est la plus proche de la valeur donnée (tableau vide si aucun zéro n’est trouvé)
- cdl.algorithms.signal.bandwidth(data: ndarray, level: float = 3.0) tuple[float, float, float, float] [source]#
Calculer la largeur de bande du signal à un niveau donné.
- Paramètres:
data – Données X,Y
level – Niveau en dB auquel la largeur de bande est calculée. Par défaut : 3.0.
- Renvoie:
coordonnées du segment
- Type renvoyé:
Bandwidth of the signal at the given level
- cdl.algorithms.signal.contrast(y: ndarray) float [source]#
Calculer le contraste
- Paramètres:
y – Tableau d’entrée
- Renvoie:
Contraste
- cdl.algorithms.signal.sinusoidal_model(x: ndarray, a: float, f: float, phi: float, offset: float) ndarray [source]#
Fonction de modèle sinusoïdal.
- cdl.algorithms.signal.sinusoidal_fit(x: ndarray, y: ndarray) tuple[tuple[float, float, float, float], float] [source]#
Adapter un modèle sinusoïdal aux données d’entrée.
- Paramètres:
x – Données X
y – Données Y
- Renvoie:
Un tuple contenant les paramètres d’ajustement (amplitude, fréquence, phase, décalage) et les résidus
- cdl.algorithms.signal.sinus_frequency(x: ndarray, y: ndarray) float [source]#
Calculer la fréquence d’un signal sinusoïdal.
- Paramètres:
x – données x du signal
y – données y du signal
- Renvoie:
Fréquence du signal sinusoïdal
- cdl.algorithms.signal.enob(x: ndarray, y: ndarray, full_scale: float = 1.0) float [source]#
Calculer le nombre effectif de bits (ENOB).
- Paramètres:
x – données x du signal
y – données y du signal
full_scale – Pleine échelle (V). Par défaut : 1.0.
- Renvoie:
Nombre effectif de bits (ENOB)
- cdl.algorithms.signal.sinad(x: ndarray, y: ndarray, full_scale: float = 1.0, unit: Literal['dBc', 'dBFS'] = 'dBc') float [source]#
Calculer le rapport signal/bruit et distorsion (SINAD).
- Paramètres:
x – données x du signal
y – données y du signal
full_scale – Pleine échelle (V). Par défaut : 1.0.
unit – Unité des données d’entrée. Les valeurs valides sont “dBc” et “dBFS”. Par défaut : “dBc”.
- Renvoie:
Rapport signal/bruit et distorsion (SINAD)
- cdl.algorithms.signal.thd(x: ndarray, y: ndarray, full_scale: float = 1.0, unit: Literal['dBc', 'dBFS'] = 'dBc', nb_harm: int = 5) float [source]#
Calculer la distorsion harmonique totale (THD).
- Paramètres:
x – données x du signal
y – données y du signal
full_scale – Pleine échelle (V). Par défaut : 1.0.
unit – Unité des données d’entrée. Les valeurs valides sont “dBc” et “dBFS”. Par défaut : “dBc”.
nb_harm – Nombre d’harmoniques à considérer. Par défaut : 5.
- Renvoie:
Distorsion harmonique totale (THD)
- cdl.algorithms.signal.sfdr(x: ndarray, y: ndarray, full_scale: float = 1.0, unit: Literal['dBc', 'dBFS'] = 'dBc') float [source]#
Calculer la plage dynamique sans spurious (SFDR).
- Paramètres:
x – données x du signal
y – données y du signal
full_scale – Pleine échelle (V). Par défaut : 1.0.
unit – Unité des données d’entrée. Les valeurs valides sont “dBc” et “dBFS”. Par défaut : “dBc”.
- Renvoie:
Plage dynamique sans spurious (SFDR)
- cdl.algorithms.signal.snr(x: ndarray, y: ndarray, full_scale: float = 1.0, unit: Literal['dBc', 'dBFS'] = 'dBc') float [source]#
Calculer le rapport signal/bruit (SNR).
- Paramètres:
x – données x du signal
y – données y du signal
full_scale – Pleine échelle (V). Par défaut : 1.0.
unit – Unité des données d’entrée. Les valeurs valides sont “dBc” et “dBFS”. Par défaut : “dBc”.
- Renvoie:
Rapport signal/bruit (SNR)
- cdl.algorithms.signal.sampling_period(x: ndarray) float [source]#
Calculer la période d’échantillonnage
- Paramètres:
x – Données X
- Renvoie:
Période d’échantillonnage
- cdl.algorithms.signal.sampling_rate(x: ndarray) float [source]#
Calculer le taux d’échantillonnage moyen
- Paramètres:
x – Données X
- Renvoie:
Taux d’échantillonnage
- cdl.algorithms.signal.fwhm(data: ndarray, method: Literal['zero-crossing', 'gauss', 'lorentz', 'voigt'] = 'zero-crossing', xmin: float | None = None, xmax: float | None = None) tuple[float, float, float, float] [source]#
Calculer la largeur totale à mi-hauteur (FWHM) des données d’entrée
- Paramètres:
data – Données X,Y
method – Méthode de calcul. Deux types de méthodes sont pris en charge : une méthode de croisement à zéro et des méthodes d’ajustement (basées sur divers modèles : Gauss, Lorentz, Voigt). Par défaut : « zero-crossing ».
xmin – Borne X inférieure pour l’ajustement. Par défaut : None (pas de borne inférieure, c’est-à-dire que l’ajustement commence à partir du premier point).
xmax – Borne X supérieure pour l’ajustement. Par défaut : None (pas de borne supérieure, c’est-à-dire que l’ajustement se termine au dernier point)
- Renvoie:
Coordonnées du segment LMH
- cdl.algorithms.signal.fw1e2(data: ndarray) tuple[float, float, float, float] [source]#
Calculer la largeur totale à 1/e² des données d’entrée (en utilisant un ajustement de modèle gaussien).
- Paramètres:
data – Données X,Y
- Renvoie:
Coordonnées du segment LMH à 1/e²
- cdl.algorithms.signal.allan_variance(x: ndarray, y: ndarray, tau_values: ndarray) ndarray [source]#
Calculate the Allan variance for given time and measurement values at specified tau values.
- Paramètres:
x – Tableau des temps
y – Measured values array
tau_values – Allan deviation time values
- Renvoie:
Allan variance values
- cdl.algorithms.signal.allan_deviation(x: ndarray, y: ndarray, tau_values: ndarray) ndarray [source]#
Calculate the Allan deviation for given time and measurement values at specified tau values.
- Paramètres:
x – Tableau des temps
y – Measured values array
tau_values – Allan deviation time values
- Renvoie:
Allan deviation values
- cdl.algorithms.signal.overlapping_allan_variance(x: ndarray, y: ndarray, tau_values: ndarray) ndarray [source]#
Calculate the Overlapping Allan variance for given time and measurement values.
- Paramètres:
x – Tableau des temps
y – Measured values array
tau_values – Allan deviation time values
- Renvoie:
Overlapping Allan variance values
- cdl.algorithms.signal.modified_allan_variance(x: ndarray, y: ndarray, tau_values: ndarray) ndarray [source]#
Calculate the Modified Allan variance for given time and measurement values.
- Paramètres:
x – Tableau des temps
y – Measured values array
tau_values – Modified Allan deviation time values
- Renvoie:
Modified Allan variance values
- cdl.algorithms.signal.hadamard_variance(x: ndarray, y: ndarray, tau_values: ndarray) ndarray [source]#
Calculate the Hadamard variance for given time and measurement values.
- Paramètres:
x – Tableau des temps
y – Measured values array
tau_values – Hadamard deviation time values
- Renvoie:
Hadamard variance values
- cdl.algorithms.signal.total_variance(x: ndarray, y: ndarray, tau_values: ndarray) ndarray [source]#
Calculate the Total variance for given time and measurement values.
- Paramètres:
x – Tableau des temps
y – Measured values array
tau_values – Total variance time values
- Renvoie:
Total variance values
- cdl.algorithms.signal.time_deviation(x: ndarray, y: ndarray, tau_values: ndarray) ndarray [source]#
Calculate the Time Deviation (TDEV) for given time and measurement values.
- Paramètres:
x – Tableau des temps
y – Measured values array
tau_values – Time deviation time values
- Renvoie:
Time deviation values
Algorithmes de traitement d’image#
- cdl.algorithms.image.scale_data_to_min_max(data: ndarray, zmin: float | int, zmax: float | int) ndarray [source]#
Mettre à l’échelle le tableau data pour s’adapter à la plage dynamique [zmin, zmax]
- Paramètres:
data – Données d’entrée
zmin – Valeur minimale des données de sortie
zmax – Valeur maximale des données de sortie
- Renvoie:
Données mises à l’échelle
- cdl.algorithms.image.normalize(data: ndarray, parameter: Literal['maximum', 'amplitude', 'area', 'energy', 'rms'] = 'maximum') ndarray [source]#
Normaliser le tableau d’entrée à un paramètre donné.
- Paramètres:
data – Données d’entrée
parameter – Paramètre de normalisation (par défaut : « maximum »)
- Renvoie:
Tableau normalisé
- cdl.algorithms.image.fft2d(z: ndarray, shift: bool = True) ndarray [source]#
Calculer la FFT du tableau complexe z
- Paramètres:
z – Données d’entrée
shift – Décaler la fréquence nulle vers le centre (par défaut : True)
- Renvoie:
FFT des données d’entrée
- cdl.algorithms.image.ifft2d(z: ndarray, shift: bool = True) ndarray [source]#
Calculer la FFT inverse du tableau complexe z
- Paramètres:
z – Données d’entrée
shift – Décaler la fréquence nulle vers le centre (par défaut : True)
- Renvoie:
FFT inverse des données d’entrée
- cdl.algorithms.image.magnitude_spectrum(z: ndarray, log_scale: bool = False) ndarray [source]#
Calculer le spectre de magnitude du tableau complexe z
- Paramètres:
z – Données d’entrée
log_scale – Utiliser une échelle logarithmique (par défaut : False)
- Renvoie:
Spectre de magnitude des données d’entrée
- cdl.algorithms.image.phase_spectrum(z: ndarray) ndarray [source]#
Calculer le spectre de phase du tableau complexe z
- Paramètres:
z – Données d’entrée
- Renvoie:
Spectre de phase des données d’entrée (en degrés)
- cdl.algorithms.image.psd(z: ndarray, log_scale: bool = False) ndarray [source]#
Calculer la densité spectrale de puissance du tableau complexe z
- Paramètres:
z – Données d’entrée
log_scale – Utiliser une échelle logarithmique (par défaut : False)
- Renvoie:
Densité spectrale de puissance des données d’entrée
- cdl.algorithms.image.binning(data: ndarray, sx: int, sy: int, operation: Literal['sum', 'average', 'median', 'min', 'max'], dtype=None) ndarray [source]#
Effectuer le binning des pixels de l’image
- Paramètres:
data – Données d’entrée
sx – Binning le long de x (nombre de pixels à biner ensemble)
sy – Binning le long de y (nombre de pixels à biner ensemble)
operation – Opération de binning
dtype – Type de données de sortie (par défaut : None, c’est-à-dire identique à l’entrée)
- Renvoie:
Données binnées
- cdl.algorithms.image.flatfield(rawdata: ndarray, flatdata: ndarray, threshold: float | None = None) ndarray [source]#
Calculer la correction du champ plat
- Paramètres:
rawdata – Données brutes
flatdata – Données de champ plat
threshold – Seuil de correction du champ plat (par défaut : None)
- Renvoie:
Données corrigées du champ plat
- cdl.algorithms.image.get_centroid_fourier(data: ndarray) tuple[float, float] [source]#
Retourne le centre de gravité de l’image en utilisant l’algorithme de Fourier
- Paramètres:
data – Données d’entrée
- Renvoie:
Coordonnées du centre de gravité (ligne, colonne)
- cdl.algorithms.image.get_absolute_level(data: ndarray, level: float) float [source]#
Retourne le niveau absolu
- Paramètres:
data – Données d’entrée
level – Niveau relatif (0.0 à 1.0)
- Renvoie:
Niveau absolu
- cdl.algorithms.image.get_enclosing_circle(data: ndarray, level: float = 0.5) tuple[int, int, float] [source]#
Retourne (x, y, rayon) pour le contour du cercle contenant les valeurs d’image au-dessus du niveau relatif du seuil (.5 signifie FWHM)
- Paramètres:
data – Données d’entrée
level – Niveau relatif (par défaut : 0.5)
- Renvoie:
Un tuple (x, y, rayon)
- Lève:
ValueError – Aucun contour n’a été trouvé
- cdl.algorithms.image.get_radial_profile(data: ndarray, center: tuple[int, int]) tuple[ndarray, ndarray] [source]#
Retourne le profil radial des données d’image
- Paramètres:
data – Tableau d’entrée (2D)
center – Coordonnées du centre du profil (x, y)
- Renvoie:
Profil radial (X, Y) où X est la distance du centre (tableau 1D) et Y est la valeur moyenne des pixels à cette distance (tableau 1D)
- cdl.algorithms.image.distance_matrix(coords: list) ndarray [source]#
Retourne la matrice de distance à partir des coordonnées
- Paramètres:
coords – Liste des coordonnées
- Renvoie:
Matrice de distance
- cdl.algorithms.image.get_2d_peaks_coords(data: ndarray, size: int | None = None, level: float = 0.5) ndarray [source]#
Détecte les pics dans les données d’image, retourne les coordonnées.
Si la taille du voisinage est None, la valeur par défaut est la plus élevée entre 50 pixels et le 1/40ème de la plus petite dimension de l’image.
Le niveau de seuil de détection est relatif à la différence entre les valeurs maximales et minimales des données.
- Paramètres:
data – Données d’entrée
size – Taille du voisinage (par défaut : None)
level – Niveau relatif (par défaut : 0.5)
- Renvoie:
Coordonnées des pics
- cdl.algorithms.image.get_contour_shapes(data: ndarray | MaskedArray, shape: Literal['circle', 'ellipse', 'polygon'] = 'ellipse', level: float = 0.5) ndarray [source]#
Trouve les contours de valeur iso dans un tableau 2D, au-dessus du niveau relatif (.5 signifie FWHM), puis ajuste les contours avec la forme (“ellipse” ou “cercle”)
- Paramètres:
data – Données d’entrée
shape – Forme à ajuster. Par défaut : “ellipse”
level – Niveau relatif (par défaut : 0.5)
- Renvoie:
Coordonnées des formes
- cdl.algorithms.image.get_hough_circle_peaks(data: ndarray, min_radius: float | None = None, max_radius: float | None = None, nb_radius: int | None = None, min_distance: int = 1) ndarray [source]#
Détecte les pics dans l’image à partir de la transformée de Hough du cercle, retourne les coordonnées du cercle.
- Paramètres:
data – Données d’entrée
min_radius – Rayon minimum (par défaut : None)
max_radius – Rayon maximum (par défaut : None)
nb_radius – Nombre de rayons (par défaut : None)
min_distance – Distance minimale entre les cercles (par défaut : 1)
- Renvoie:
Coordonnées des cercles
- cdl.algorithms.image.find_blobs_dog(data: ndarray, min_sigma: float = 1, max_sigma: float = 30, overlap: float = 0.5, threshold_rel: float = 0.2, exclude_border: bool = True) ndarray [source]#
Recherche les taches dans l’image en niveaux de gris donnée en utilisant la méthode de différence de Gauss (DoG).
- Paramètres:
data – L’image d’entrée en niveaux de gris.
min_sigma – Le rayon minimum de la tache en pixels.
max_sigma – Le rayon maximum de la tache en pixels.
overlap – Le chevauchement minimum entre deux taches en pixels. Par exemple, si deux taches sont détectées avec des rayons de 10 et 12 respectivement, et que le chevauchement est défini sur 0,5, alors la zone de la plus petite tache sera ignorée et seule la zone de la plus grande tache sera retournée.
threshold_rel – La limite inférieure absolue pour les maxima de l’espace d’échelle. Les maxima locaux plus petits que
threshold_rel
sont ignorés. Réduisez ceci pour détecter les taches avec moins d’intensité.exclude_border – Si
True
, exclure les taches de la détection si elles sont trop proches du bord de l’image. La taille de la bordure estmin_sigma
.
- Renvoie:
Coordonnées des taches
- cdl.algorithms.image.find_blobs_doh(data: ndarray, min_sigma: float = 1, max_sigma: float = 30, overlap: float = 0.5, log_scale: bool = False, threshold_rel: float = 0.2) ndarray [source]#
Recherche les taches dans l’image en niveaux de gris donnée en utilisant la méthode du déterminant de Hessian (DoH).
- Paramètres:
data – L’image d’entrée en niveaux de gris.
min_sigma – Le rayon minimum de la tache en pixels.
max_sigma – Le rayon maximum de la tache en pixels.
overlap – Le chevauchement minimum entre deux taches en pixels. Par exemple, si deux taches sont détectées avec des rayons de 10 et 12 respectivement, et que le chevauchement est défini sur 0,5, alors la zone de la plus petite tache sera ignorée et seule la zone de la plus grande tache sera retournée.
log_scale – Si
True
, le rayon de chaque tache est retourné commesqrt(sigma)
pour chaque tache détectée.threshold_rel – La limite inférieure absolue pour les maxima de l’espace d’échelle. Les maxima locaux plus petits que
threshold_rel
sont ignorés. Réduisez ceci pour détecter les taches avec moins d’intensité.
- Renvoie:
Coordonnées des taches
- cdl.algorithms.image.find_blobs_log(data: ndarray, min_sigma: float = 1, max_sigma: float = 30, overlap: float = 0.5, log_scale: bool = False, threshold_rel: float = 0.2, exclude_border: bool = True) ndarray [source]#
Recherche les taches dans l’image en niveaux de gris donnée en utilisant la méthode du Laplacien de Gauss (LoG).
- Paramètres:
data – L’image d’entrée en niveaux de gris.
min_sigma – Le rayon minimum de la tache en pixels.
max_sigma – Le rayon maximum de la tache en pixels.
overlap – Le chevauchement minimum entre deux taches en pixels. Par exemple, si deux taches sont détectées avec des rayons de 10 et 12 respectivement, et que le chevauchement est défini sur 0,5, alors la zone de la plus petite tache sera ignorée et seule la zone de la plus grande tache sera retournée.
log_scale – Si
True
, le rayon de chaque tache est retourné commesqrt(sigma)
pour chaque tache détectée.threshold_rel – La limite inférieure absolue pour les maxima de l’espace d’échelle. Les maxima locaux plus petits que
threshold_rel
sont ignorés. Réduisez ceci pour détecter les taches avec moins d’intensité.exclude_border – Si
True
, exclure les taches de la détection si elles sont trop proches du bord de l’image. La taille de la bordure estmin_sigma
.
- Renvoie:
Coordonnées des taches
- cdl.algorithms.image.remove_overlapping_disks(coords: ndarray) ndarray [source]#
Supprimer les disques qui se chevauchent parmi les coordonnées
- Paramètres:
coords – Les coordonnées des disques
- Renvoie:
Les coordonnées des disques avec les disques qui se chevauchent supprimés
- cdl.algorithms.image.find_blobs_opencv(data: ndarray, min_threshold: float | None = None, max_threshold: float | None = None, min_repeatability: int | None = None, min_dist_between_blobs: float | None = None, filter_by_color: bool | None = None, blob_color: int | None = None, filter_by_area: bool | None = None, min_area: float | None = None, max_area: float | None = None, filter_by_circularity: bool | None = None, min_circularity: float | None = None, max_circularity: float | None = None, filter_by_inertia: bool | None = None, min_inertia_ratio: float | None = None, max_inertia_ratio: float | None = None, filter_by_convexity: bool | None = None, min_convexity: float | None = None, max_convexity: float | None = None) ndarray [source]#
Recherche les taches dans l’image en niveaux de gris donnée en utilisant le détecteur de taches simples d’OpenCV.
- Paramètres:
data – L’image d’entrée en niveaux de gris.
min_threshold – L’intensité minimale de la tache.
max_threshold – L’intensité maximale de la tache.
min_repeatability – Le nombre minimum de fois qu’une tache est détectée avant qu’elle ne soit signalée.
min_dist_between_blobs – La distance minimale entre les taches.
filter_by_color – Si
True
, les taches sont filtrées par couleur.blob_color – La couleur des taches à filtrer par.
filter_by_area – Si
True
, les taches sont filtrées par zone.min_area – La zone minimale de la tache.
max_area – La zone maximale de la tache.
filter_by_circularity – Si
True
, les taches sont filtrées par circularité.min_circularity – La circularité minimale de la tache.
max_circularity – La circularité maximale de la tache.
filter_by_inertia – Si
True
, les taches sont filtrées par inertie.min_inertia_ratio – Le rapport d’inertie minimale de la tache.
max_inertia_ratio – Le rapport d’inertie maximale de la tache.
filter_by_convexity – Si
True
, les taches sont filtrées par convexité.min_convexity – La convexité minimale de la tache.
max_convexity – La convexité maximale de la tache.
- Renvoie:
Coordonnées des taches
Algorithmes de conversion de type de données#
- cdl.algorithms.datatypes.is_integer_dtype(dtype: dtype) bool [source]#
Retourne True si le type de données est un type entier
- Paramètres:
dtype – Type de données à vérifier
- Renvoie:
True si le type de données est un type entier
- cdl.algorithms.datatypes.is_complex_dtype(dtype: dtype) bool [source]#
Retourne True si le type de données est un type complexe
- Paramètres:
dtype – Type de données à vérifier
- Renvoie:
True si le type de données est un type complexe
- cdl.algorithms.datatypes.clip_astype(data: ndarray, dtype: dtype) ndarray [source]#
Convert array to a new data type, after having clipped values to the new data type’s range if it is an integer type. If data type is not integer, this is equivalent to
data.astype(dtype)
.- Paramètres:
data – Array to convert
dtype – Type de données après conversion
- Renvoie:
Array converted to new data type
Algorithmes de conversion de coordonnées#
- cdl.algorithms.coordinates.circle_to_diameter(xc: float, yc: float, r: float) tuple[float, float, float, float] [source]#
Convertit le centre et le rayon du cercle en coordonnées de diamètre X
- Paramètres:
xc – Abscisse du centre du cercle
yc – Ordonnée du centre du cercle
r – Rayon du cercle
- Renvoie:
Coordonnées de diamètre X du cercle
- Type renvoyé:
- cdl.algorithms.coordinates.array_circle_to_diameter(data: ndarray) ndarray [source]#
Convertit le centre et le rayon du cercle en coordonnées de diamètre X (version tableau)
- Paramètres:
data – Centre et rayon du cercle, sous la forme d’un tableau 2D (N, 3)
- Renvoie:
Coordonnées de diamètre X du cercle, sous la forme d’un tableau 2D (N, 4)
- cdl.algorithms.coordinates.circle_to_center_radius(x0: float, y0: float, x1: float, y1: float) tuple[float, float, float] [source]#
Convertit les coordonnées de diamètre X du cercle en centre et rayon
- Paramètres:
x0 – Abscisse de début de diamètre du cercle
y0 – Ordonnée de début de diamètre du cercle
x1 – Abscisse de fin de diamètre du cercle
y1 – Ordonnée de fin de diamètre du cercle
- Renvoie:
Centre et rayon du cercle
- Type renvoyé:
- cdl.algorithms.coordinates.array_circle_to_center_radius(data: ndarray) ndarray [source]#
Convertit les coordonnées de diamètre X du cercle en centre et rayon (version tableau)
- Paramètres:
data – Coordonnées de diamètre X du cercle, sous la forme d’un tableau 2D (N, 4)
- Renvoie:
Centre et rayon du cercle, sous la forme d’un tableau 2D (N, 3)
- cdl.algorithms.coordinates.ellipse_to_diameters(xc: float, yc: float, a: float, b: float, theta: float) tuple[float, float, float, float, float, float, float, float] [source]#
Convertit le centre, les axes et l’angle de l’ellipse en coordonnées de diamètres X/Y
- Paramètres:
xc – Abscisse du centre de l’ellipse
yc – Ordonnée du centre de l’ellipse
a – Demi grand axe de l’ellipse
b – Demi petit axe de l’ellipse
theta – Angle de l’ellipse
- Renvoie:
Coordonnées des diamètres X/Y (grands/petits axes) de l’ellipse
- cdl.algorithms.coordinates.array_ellipse_to_diameters(data: ndarray) ndarray [source]#
Convertit le centre, les axes et l’angle de l’ellipse en coordonnées de diamètres X/Y (version tableau)
- Paramètres:
data – Centre, axes et angle de l’ellipse, sous la forme d’un tableau 2D (N, 5)
- Renvoie:
Coordonnées des diamètres X/Y de l’ellipse (grands/petits axes), sous la forme d’un tableau 2D (N, 8)
- cdl.algorithms.coordinates.ellipse_to_center_axes_angle(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, x3: float, y3: float) tuple[float, float, float, float, float] [source]#
Convertit les coordonnées de diamètres X/Y de l’ellipse en centre, axes et angle
- Paramètres:
x0 – abscisse de début du grand axe
y0 – ordonnée de début du grand axe
x1 – abscisse de fin du grand axe
y1 – ordonnée de fin du grand axe
x2 – abscisse de début du petit axe
y2 – ordonnée de début du petit axe
x3 – abscisse de fin du petit axe
y3 – ordonnée de fin du petit axe
- Renvoie:
Centre, axes et angle de l’ellipse
- cdl.algorithms.coordinates.array_ellipse_to_center_axes_angle(data: ndarray) ndarray [source]#
Convertit les coordonnées de diamètres X/Y de l’ellipse en centre, axes et angle (version tableau)
- Paramètres:
data – Coordonnées de diamètres X/Y de l’ellipse, sous la forme d’un tableau 2D (N, 8)
- Renvoie:
Centre, axes et angle de l’ellipse, sous la forme d’un tableau 2D (N, 5)
- cdl.algorithms.coordinates.cartesian2polar(x: ndarray, y: ndarray, unit: Literal['rad', 'deg'] = 'rad') tuple[ndarray, ndarray] [source]#
Convertit les coordonnées de diamètre X du cercle en centre et rayon
- Paramètres:
x – Cartesian x-coordinate.
y – Cartesian y-coordinate.
unit – Unit of the angle (“rad” or “deg”).
- Renvoie:
Polar coordinates (r, theta) where r is the radius and theta is the angle.
- cdl.algorithms.coordinates.polar2cartesian(r: ndarray, theta: ndarray, unit: Literal['rad', 'deg'] = 'rad') tuple[ndarray, ndarray] [source]#
Convert polar coordinates to Cartesian coordinates.
- Paramètres:
r – Polar radius.
theta – Polar angle.
unit – Unit of the angle (“rad” or “deg”).
- Renvoie:
Cartesian coordinates (x, y) where x is the x-coordinate and y is the y-coordinate.
Note
Negative radius values are not supported. They will be set to 0.