Je serais tout à fait prêt à passer à scilab mais je voudrais savoir avant comment il se compare à IDL (logiciel propriétaire très utilisé et très cher dans le traitemant d'image, www.rsinc.com) en terme de vitesse (les routines sont-elles compilées au vol?), de stabilité et de surtout praticité.
En particulier, IDL a une fonction |where| extrêmement pratique et rapide qui renvoit les indices (aplatis sur une dimension) des éléments d'un tableau vérifiant une certaine condition.
Aussi, est-il possible de définir des structures et des tableaux de structures?
J'ai parcouru la doc, mais je n'ai rien trouvé de similaire.
supposons que 'monImage.fits' soit un tableau flottant 2D
Comment cet exemple de base se traduirait-il en SciLab?
IDL> image = readfits('monImage.fits',header)
IDL> dark = readfits('monDark.fits',header)
IDL> flat = readfits('monFlat.fits',header)
IDL> help, image, dark, flat
IMAGE FLOAT = Array[128, 128]
DARK FLOAT = Array[128, 128]
FLAT FLOAT = Array[128, 128]
IDL> image = image > 0 ; toute valeur négative est mise à 0
IDL> image[32,*] = 0 ; on met à 0 une colonne morte
IDL> badindex=where(image eq 999 or image gt 2000, count, complement=goodindex)
IDL> if count gt 0 then image[badindex]=0 ; idem pour les pixels morts
IDL> corr_image = (image - dark) / flat
Si la traduction SciLab ne prend pas un ligne de plus, je suis preneur. (la possibilité de lire un fichier fits est secondaire, elle n'est disponible sous IDL qu'avec une librairie externe)
[^] # Comparatif IDL/SciLab?
Posté par Pierre Chanial . En réponse à la dépêche Développement et diffusion de logiciel open source : un point fort de la culture INRIA. Évalué à 1.
En particulier, IDL a une fonction |where| extrêmement pratique et rapide qui renvoit les indices (aplatis sur une dimension) des éléments d'un tableau vérifiant une certaine condition.
Aussi, est-il possible de définir des structures et des tableaux de structures?
J'ai parcouru la doc, mais je n'ai rien trouvé de similaire.
supposons que 'monImage.fits' soit un tableau flottant 2D
Comment cet exemple de base se traduirait-il en SciLab?
IDL> image = readfits('monImage.fits',header)
IDL> dark = readfits('monDark.fits',header)
IDL> flat = readfits('monFlat.fits',header)
IDL> help, image, dark, flat
IMAGE FLOAT = Array[128, 128]
DARK FLOAT = Array[128, 128]
FLAT FLOAT = Array[128, 128]
IDL> image = image > 0 ; toute valeur négative est mise à 0
IDL> image[32,*] = 0 ; on met à 0 une colonne morte
IDL> badindex=where(image eq 999 or image gt 2000, count, complement=goodindex)
IDL> if count gt 0 then image[badindex]=0 ; idem pour les pixels morts
IDL> corr_image = (image - dark) / flat
Si la traduction SciLab ne prend pas un ligne de plus, je suis preneur. (la possibilité de lire un fichier fits est secondaire, elle n'est disponible sous IDL qu'avec une librairie externe)