Jump to content

script: filtre médian appliqué à une séquence?


sunday
 Share

Recommended Posts

Bonjour à tous,

 

Je débute pour créer des scripts avec Siril.

 

Et je rencontre un problème (basique) pour réaliser un script qui permet d'appliquer

un filtre médian à l'ensemble des images qui sont dans une séquence et dans le répertoire de travail.

 

Comment faire ?

 

Je ne vois nulle part la syntaxe  de la boucle FOR .....

 

Marc.

Link to comment
Share on other sites

Il y a 2 heures, lock042 a dit :

On peut cependant utiliser le bash ou autres, comme expliqué ici : https://siril.org/fr/tutorials/bash-scripts/

 

Merci pour l'info.

 

Bon cela commence bien avec déjà un problème pour suivre le tutorial.

Cela fait des années que je n'ai plus utilisé les commandes DOS et le PowerShell ( je suis sous windows).

 

Déjà pour créer le fichier vide "copy NUL resample.bat",  cela ne marche pas.

 

 

Voici la commande pas acceptée sous PowerShell:

 

C:\users\Marc\AppData\Roaming\siril\scripts> copy NUL resample.bat

 

 

Link to comment
Share on other sites

c'est à dire, dans le répertoire des scripts de Siril,

chez moi  C:\Users\Marc\AppData\Roaming\siril

 

clic droit pour créer le fichier texte "resample.txt"

que je renomme en "resample.bat"

 

C'est bien cela?

 

 

Link to comment
Share on other sites

il y a 40 minutes, Cissou8 a dit :

Ce tuto a été fait en cmd

 

 

OK, j'essaie en mode cmd alors.

 

Je me "suis mis" en commande DOS.

La création du Batch vide se fait bien par la commande "copy NUL resample.bat".

 

Puis j'édite le texte pour le batch du tuto.

 

Je double clic pour l'exécution du batch et là Siril n'est pas reconnu....

 

C:\Users\Marc\AppData\Roaming\siril\scripts>echo OFF

'siril' n’est pas reconnu en tant que commande interne

ou externe, un programme exécutable ou un fichier de commandes.

Appuyez sur une touche pour continuer...

 

 

Link to comment
Share on other sites

Ah oui, ça dépend de si siril est dans le PATH ou pas. @lock042,faudrait qu'on modif dans le tuto pour que c marche à tous les coups.

 

Alors de tête (je suis sur le tel....) 

Il faut remplacer

FOR /F "tokens=2 " %%g IN ('siril --version') do (SET version=%%g)

Par 

FOR /F "tokens=2 " %%g IN ('"C:\Program Files\SiriL\bin\siril.exe" --version') do (SET version=%%g)

Link to comment
Share on other sites

Ok, merci Cécile.

 

Plus de message d'erreur avec ce remplacement

 

J'ai aussi remplacer dans l'exemple resample 2.0 par rotate 30 pour directement voir

le résulat sur l'image sauvegardée.

 

Et en chargeant l'image pas de rotation de 30° effectuée ???

 

J'essaie d'avancer pas à pas mais pas simple...

Link to comment
Share on other sites

Sous Windows, je ne vois pas l’intérêt de créer au préalable un fichier vide. On peut directement créer le fichier dans Notepad et le sauver avec le nom qu’on veut suivi de .bat pour le rendre batchable.

 

Le tutoriel deviendrait alors, sous Windows :

 

Lancer Notepad et saisir ou copier coller le texte suivant :

echo OFF
FOR /F "tokens=2 " %%g IN ('siril --version') do (SET version=%%g) 

set ext=fits 

 

(

echo requires %version% 

echo setext %ext% 

echo load %1

echo resample 2.0 

echo save %1 

echo close 

) | "C:\Program Files\SiriL\bin\siril-cli.exe" -s - >nul 2>&1 

 

pause

 

Puis sauver le fichier sous le nom « resample.bat ».

Link to comment
Share on other sites

il y a 15 minutes, Fred_76 a dit :

Sous Windows, je ne vois pas l’intérêt de créer au préalable un fichier vide

 

Moi non plus....

 

 

Bon voici mon premier essai très simpliste pour une rotation de 30° et sauvegarde de l'image :

echo OFF
FOR /F "tokens=2 " %%g IN ('"C:\Program Files\SiriL\bin\siril.exe" --version') do (SET version=%%g)
set ext=fits

(
echo requires %version%
echo setext %ext%
echo load %1
echo rotate 30
echo save %1
echo close
) | "C:\Program Files\SiriL\bin\siril-cli.exe" -s - >nul 2>&1

pause

 

Cela marche en plaçant le batch dans le dossier de travail....

 

Je regarde maintenant pour effectuer une boucle for, pour appliquer à toute la séquence.

Link to comment
Share on other sites

Bon, parce que c'est bien pratique et que ca en depannera d'autres en attendant qu'on ait le temps/le besoin d'ecrire toutes les commandes qui ne s'appliquent aujourd'hui qu'a une image a une sequence,

un bout de powershell qui permet de passer la commande de son choix sur toutes les images d'une sequence.

Example:

.\genseqscript.ps1 "fmedian 5 1" "C:\MyImages\r_pp_light_.seq" med_ fit

Qui applique la commande fmedian 5 1 a toutes les images de C:\MyImages\r_pp_light_.seq en ajoutant le prefixe med_

Y a un autre exemple et les descriptions de commande au debut du fichier.

 

J'essaie de me motiver pour l'ecrire en bash demain et on l'ajoutera au tuto.

 

C.

 

EDIT: je laisse le fichier original ici, mais voir plus bas le lien vers le site siril pour avoir des fichiers avec des updates eventuels

genseqscript.ps1

 

 

Edited by Cissou8
  • J'aime 1
Link to comment
Share on other sites

Il y a 6 heures, Cissou8 a dit :

le besoin d'ecrire toutes les commandes qui ne s'applique aujourd'hui qu'a une image a une sequence,

 

C'est ce que je pense aussi et c'est ma motivation.

 

Il y a 6 heures, Cissou8 a dit :

un bout de powershell qui permet de passer la commande de son choix sur toutes les images d'une sequence

 

Beau travail Cécile. Un tout grand merci.

 

J'essaie cela ce matin.

 

Bon week-end à tous.

  • J'aime 1
Link to comment
Share on other sites

Pour faire l'essai, j'ai placé 5 images de nom "light" qui forme la séquence light-seq

dans le répertoire de travail de Siril.

 

Dans PowerShell je lance la commande

.\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossier travail SIRIL\light_.seq" med_ fit

 

Tout se passe bien, sauf pour l'accés au chemin C:\log

 

Voici  le message d'erreur dans la fenêtre Powershell :

 

 

Command to be run: fmedian 5 1

prefix: med_

FITS extension: fit

Working directory: C:\Users\Marc\Desktop\dossier travail SIRIL

Sequence to be processed: light_.seq

processing file: light_00001.fit

out-file : L'accès au chemin d'accès 'C:\log' est refusé.

Au caractère C:\genseqscript.ps1:67 : 3

+   @"

+   ~~

    + CategoryInfo          : OpenError: (:) [Out-File], UnauthorizedAccessException

    + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

 

 

Link to comment
Share on other sites

Doit y avoir des histoires de droit d'ecriture qqpart chez toi

Tu peux remplacer:

"@ | & $sirilcliexe -s - >log 2>&1

par

"@ | & $sirilcliexe -s - >$null 2>&1

Ca reglera le probleme normalement

 

Link to comment
Share on other sites

OK, problème résolu avec "$null 2".

 

Mais après traitement, les images traitées "med_light" ne se trouvent pas dans le dossier de travail.

 

En faisant une recherche de "med_light" sur C:\ ,  aucun résultat.....

Link to comment
Share on other sites

est-ce que tu pourrais faire un test en te mettant dans un dossier de travail ou il n'y a pas d'espaces?

C:\Users\Marc\Desktop\dossiertravailSIRIL par exemple

Si c'est ca, je ferai ensuite une modif, sinon, faut qu'on continue de chercher....

Link to comment
Share on other sites

ouais....je seche un peu la.... tu me ferais un screenshot de ta console powershell stp?

Que je vois la commande que tu passes et ce que ca ecrit, si jamais je vois une difference avec chez moi.

Link to comment
Share on other sites

Le problème est résolu......

 

J'avais mes images avec "Prism"  en light.fits.

J'ai modifié en  light.fit.

Cécile, tu as fourni un beau travail là.

Je t'en remercie...

Edited by sunday
Link to comment
Share on other sites

ah ben du coup, au lieu de modifier tes fichiers, tu peux directement lui passer ton extension preferee, c'est un des parametres optionnels que tu peux lui passer (c'est indique en haut du ps1, ce que tu peux lui passer et comment):

.\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossiertravailSIRIL\light_.seq" med_ fits

ou ne rien lui passer du tout puisque 'fits', c'est l'extension que j'ai mise par defaut (j'image avec NINA et c'est pareil)

.\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossiertravailSIRIL\light_.seq" med_

 

J'essaie quand meme une modif pour que ca gere si il y a des espaces dans le path et je renvoie un truc.... et j'essaie d'envoyer une version bash aussi...mais deja que powershell et moi, ca fait 2, alors bash et moi....

Edited by Cissou8
  • Merci / Quelle qualité! 1
Link to comment
Share on other sites

Pour info....

 

Voici la commande à placer dans PowerShell :

 

PS C:\Users\Marc\Desktop\dossierTravailSiril>.\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossierTravailSiril\light_.seq" med_ fit

 

Le script "genseqscript.ps1" est placé dans ce cas dans le dossier : "dossierTravailSiril"

 

Il faut aussi modifier les paramètres de sécurité, c'est expliquer ici :

 

https://syskb.com/comment-executer-un-script-en-powershell/

 

 

 

il y a 6 minutes, Cissou8 a dit :

deja que powershell et moi, ca fait 2, alors bash et moi....

 

et pour moi cela fait 3 si pas plus.....

Link to comment
Share on other sites

Just now, lock042 said:

Et ce, sans même proposer un exemplaire en python

Je sais pas ce qui me retient 🙂 Si, le fait que ce soit un tuto sur les script shell... je verrai si je fais pas la meme chose dans le tuto sur Pysiril tiens...

  • Haha 2
Link to comment
Share on other sites

Une remarque de détail.. Avec l'ancienne version :

https://www.webastro.net/applications/core/interface/file/attachment.php?id=190610&key=f037cbd36ba3c264c256e137767c21c5

 

J'ai placé le fichier genseqscript dans un répertoire que j'ai nommé "ScriptSell" donc autre que le répertoire de travail et je lance le pgm

par une commande batch :

 

Powershell.exe -executionpolicy unrestricted -File  C:\Users\Marc\Desktop\dossierTravailSiril\ScriptShell\genseqscript.ps1 "fmedian 3 1" "C:\Users\Marc\Desktop\dossierTravailSiril\light_.seq" med_3_1_ fits

 

Je trouve plus pratique d'avoir le pgm "ps1" hors du dossier de travail des images. On peut par inadvertance supprimer le pgm

en supprimant des images par exemple...

La commande "bat" facilite aussi (double clic pour exécuter).

 

Il me semble qu'avec la nouvelle version en ligne, le fichier genseqscipt.ps1 doit nécessairement se trouver

dans répertoire de travail de Siril pour qu'il fonctionne.

 

C'est vraiment du détail....

Link to comment
Share on other sites

Ah oui, effectivement, j'avais oublie un bout de chemin lorsque je teste pour l'existence du premier light (je l'avais bien fait en bash....un comble!). Je fais une modif et elle sera en ligne sous peu est en ligne.

La, ca marchera peu importe ou se trouve le ps1. Il faut toutefois dans ce cas envoyer le chemin complet vers le .seq

 

Si tu aimes bien les .bat, tu peux meme te faire un petit dossier (j'ai mis dans C:\Astro\SirilShell\, j'aime pas ranger des trucs sur le bureau, ca fait tjs des histoires avec les droits d'ecriture) dans lequel tu ranges le .ps1 et plusieurs .bat dans ce genre:

 

Powershell.exe -executionpolicy unrestricted -File C:\Astro\SirilShell\genseqscript.ps1 "fmedian 3 1" %1 med_3_1_
pause

 

Tu le sauves par exemple en fmedian_3_1.bat

Il te suffit ensuite de tirer le .seq de ton choix sur son icone. Ca permet de pas se conformer a un emplacement unique pour le .seq 

Et tu peux t'en faire autant que tu veux en variant les commandes. Par exemple un autre avec une commande rotate de 90deg:

 

Powershell.exe -executionpolicy unrestricted -File C:\Astro\SirilShell\genseqscript.ps1 "rotate 90 -nocrop" %1 rot90_
pause

 

que tu sauves en rotate90.bat, etc etc....

 

image.png.21308f88b8007a2ef97c6ea781e5a7a7.png

 

 

Edited by Cissou8
  • Merci / Quelle qualité! 1
Link to comment
Share on other sites

il y a 29 minutes, Cissou8 a dit :

Je fais une modif et elle sera en ligne sous peu.

OK, merci beaucoup.. 

 

il y a 29 minutes, Cissou8 a dit :

Il te suffit ensuite de tirer le .seq de ton choix sur son icone. Ca permet de pas se conformer a un emplacement unique pour le .seq 

 

 

Génial. Je viens d'essayer et c'est vrai ...... c'est encore plus pratique.

il y a 33 minutes, Cissou8 a dit :

Et tu peux t'en faire autant que tu veux en variant les commandes.

 

C'est ce que je fais pour avoir une sorte de bibliothèque de commandes du genre:  fmedian_3_1 ; fmedian_5_1 ;  rot_90, etc..

 

Pour moi  c'est Top.

 

 

il y a 49 minutes, Cissou8 a dit :

elle sera en ligne sous peu est en ligne.

 

Et bien,  quelle rapidité😃

 

Je fais la modif de suite et j'étend ma bibliothèque de cmd.

 

Encore merci.

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.