jeffbax

Méthode d'allignement multi-points avec AS!3 - montée d'histogramme

Messages recommandés

Salut la communauté.

Je reprends ci-dessous 2 posts qui étaient initialement dans le forum astrophotographie. Ils contiennent une méthode que j'ai essayée avec succès pour l'empilement des images avec AS!3. Je pense que cette méthode est bien adaptée lorsque les temps de pose descendent franchement sous la seconde, que le signal est donc faible, et que la turbulence affecte la surface des objets.

 

1. L'IMAGE COMPAREE AU HST

 

J'ai repris ma NGC 7662 de novembre depuis le début, car un truc me chagrinait. Avec des poses de 200ms je pensais que la finesse aurait été meilleure, comme en planétaire. Du coup je me suis dit que si je ne profitais pas pleinement de la résolution c'était parce que les logiciels d'empilement se concentrent sur les étoiles pour aligner. Or, la turbulence affecte également la nébuleuse et les structures gazeuses.

 

AS!3 fait bien l'alignement de surface pour le planétaire, mais en poses rapides sur le CP il n'accroche pas car ça manque de lumière. J'ai donc appliqué une idée bête : faire une montée d'histogramme sur les brutes (45 000 tout de même) avant d'empiler.

 

Ca a l'air de marcher, AS!3 s'en sort mieux et les AP peuvent être définis sur l'ensemble de la surface de l'objet. Enfin je crois. Je trouve que sur l'image les principales structures montrées par Hubble sont visibles (Hubble réduit 50%).

 

Je confirmerai bientôt tout ça sur le Clown avec ma nouvelle Barlow 1,5  x. :ph34r:

 

Il y a 35000 x 200 ms retenues. La couleur vient d'une image à la 224 MC de 2016 :

 

5c95e04d77943_NGC7662HST.jpg.771b9f70667abdd7701f0a7ca72fca7c.jpg

 

Un petit like sur la full ici si vous avez 2 mn :

 

get.jpg?insecure

 

 

2. LA TECHNIQUE

 

Je vais tenter une explication globale sur cette méthode. Elle n'a pas de nom, disons la "sauce à JF" :

 

Pour commencer, un comparatif avant/après. traitement habituel avec SIRIL à gauche puis empilement AS!3 avec montée d'histogramme (la sauce) à droite.

 

A gauche l'image est triée par FWHM et traitée en drizzle X2 puis déconvolution à la limite des artefacts pour aller chercher les détails, avec comme prix à payer une élévation du contraste qui gomme les détails dans les tons clairs. La couleur souffre aussi beaucoup. Mais bon, c'est déjà pas trop mal. Ce qui m'a embêté, c'est que j'ai fait une série en 2016 à 1 seconde de pose et qu'à 200ms le gain n'est pas significatif. Pourtant il devrait l'être. J'ai donc pensé à cette histoire d'alignement sur les étoiles qui ne traite pas toute la turbulence affectant la surface.

 

compa.jpg.2cf4ad97d9af5cbfcaddfdae947aeb2c.jpg

 

J'ai donc repris depuis le début. Voici une brute :

 

brute.jpg.bbe965a83c0d9c042e59bcd64654ebdb.jpg

 

Le signal est faible et AS!3 n'accroche pas sur la surface avec les points d'ancrage pour empiler. Ca génère des images fantômes et il est impossible de sortir un truc propre. Généralement on choisit donc une étoile et on empile avec un seul AP. Je pense qu'on se prive ainsi d'un alignement bien plus efficace, du type de ce qui se fait en imagerie planétaire. D'où l'idée d'une montée d'histogramme en pré-traitement pour "aider" le logiciel.

 

J'intègre mes darks sous PIPP comme d'habitude pour chaque série, puis j'ouvre une brute sous CS. Je calle les niveaux, sans toucher aux points blanc et noir, mais juste en jouant sur le curseur central. Ca revient à appliquer un gamma. J'arrête quand ça a "une bonne tête". Ici on lit un gamma de 1,7 :

 

brute_niveaux.jpg.e45932cb27845f8e85152d65619a5a87.jpg

 

Je note ce gamma. Je charge mes fichiers dans PIPP pour les recoller en SER comme d'habitude, et j'applique ce gamma de 1,7 à toute la séquence :

 

PIPP.jpg.29f384945c2e683128c5e73565491688.jpg

 

J'obtiens un gros SER qui contient toutes les brutes pré-traitées avec dark et gamma appliqué.

Je le charge dans AS!3. Drizzle 3X (ça c'est comme on veut) et je définis les AP sur l'objet. Je prends les fenêtres très larges (400) car l'objet va dériver un peu (pas d'autoguidage) :

 

brute_AS.jpg.7caee8d8617c9cbaec1b9a40d1d7792d.jpg

 

Et là, ben ça mouline longtemps (pourtant core i7 4790 overclocké à 4200 Mhz et 32 Go de mémoire DDR 3 overclockée ! = 5 heures)  et ça le fait :

 

Stack.jpg.8a1523112ea054083b4a47034b4baa19.jpg

 

Juste pour montrer, un RL et 2 x 500% de netteté optimisée sous CS (oui j'abuse) :

 

Stack_dec.jpg.14148e16f9197b8d00fb3515ab1162f9.jpg

 

Ca n'a pas la même tête et les détails sont bien plus présents. Le reste est classique sous CS : histo non linéaire, couche couleur, bruit, etc...

 

Voilà B|

 

JF

 

Modifié par jeffbax
  • J'aime 3
  • Merci 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Super intéressant tout ça.

 

Si je comprends bien tu appliques un gamma via PIPP (le couteau Suisse des logiciel de pré-traitement) afin d'aider AS!3 à mieux trouver la nébuleuse pour un alignement plus précis.

 

Cette valeur de 1,7 tu l'obtiens sous CS en glissant les tons moyens en limite de courbe ou en fonction de l'aspect de la nébuleuse sur l'image ? N'est-ce-pas un peu empirique ? 

 

Une fois que tu as appliqué cette correction de gamma, as-tu essayé un second traitement SiriL pour voir ce qui se passait de ce côté ? Si ça aide AS!3, ça devrait aider SiriL aussi, non ?

 

En tout cas, merci pour ce partage. Je trouve tout cela passionnant et impressionnant. Vous me bluffez les gars. Grand respect.

 

Merci également pour les réponses.

 

Simon-Pierre .

  • Merci 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut. Oui c'est ca. Le gamma aide le logiciel à accrocher sur la cible en multipoint. La méthode ne marche pas toujours.

Pour siril pas de problème, même sans gamma. Mais c'est un alignement sur les étoiles. L'intérêt ici est de faire du multipoint sur l'objet. Je crois que la prochaine version de siril le fera si j'ai bien compris.

Pour le choix de la valeur du gamma c'est à l'oeil et en essayant.

Merci pour tes encouragements.

Jf

Modifié par jeffbax
  • Merci 1

Partager ce message


Lien à poster
Partager sur d’autres sites

(Je débute et me pose des questions afin d' essayer de choisir dans quelle voie je vais me diriger, en attendant que le ciel me permette de passer à la pratique).

 

Est ce que depuis, tu privilégies toujours cette méthode pour les NP?

 

Est ce que tes AP dans AS3! ne seraient pas trop larges ? En me posant cette question, je pense aux captures planétaires que je fais dans FC avec l' option d' autoalignement qui centre (certainement de manière relativement sommaire) l'objet dans chaque prise.

 

Clem

Partager ce message


Lien à poster
Partager sur d’autres sites



  • Contenu similaire

    • Par John deuxsource
      En ce moment je retraite mes photos en me peaufinant sur siril. Voici une photo que j'ai prise cet hiver. Jai stack en live 3500 *500ms sur sharpcap pour la luminance et et après j'ai fait 10min de ha. Une rotation et demi de table équatoriale et au lit ! J'adore le livestack 
       
      Asi533 , paracorr 2 , Dobson508mm arp83 , table Eq deux axes.
       
    • Par John deuxsource
      En ce moment je retraite mes photos en me peaufinant sur siril. Voici une photo que j'ai pris en août dernier. Jai stack en live 5000 *500mssur sharpcap pour la luminance et et après j'ai fait 5 min de couleur par canal. Ça manque un peu de signal en couleur mais les détails sont quand même la
       
      Asi533 , paracorr 2 , Dobson508 arp83 , table Eq deux axes.

    • Par Gilles Pascal
      Bonjour,
       
      en 2023 j'ai réalisé une série de prises de vue de Jupiter pendant une nuit.
      Ensuite je les ai assemblées (avec PIPP) pour en faire une animation.
       
      Le résultat me plaît mais à présent je voudrais aller plus loin. L'idée serait de pouvoir superposer à chaque vue, une image tirée de la simulation de STELLARIUM.
       
      Chaque image de l'animation serait au final donc un assemblage de deux images :
      - Dans la moitié supérieure de l'image on verrait un bandeau horizontal issu de STELLARIUM
      - Dans la moitié inférieure, on verrait un bandeau réalisé à partir de l'image prise par la caméra.
       
      Le souci c'est la rotation de champ dans STELLARIUM.
       
      Pendant pas mal de temps je me suis noué le cerveau pour tenter de trouver l'angle qu'il faudrait appliquer pour réaliser la dé-rotation.
       
      Et aujourd'hui je viens de trouver une solution totalement simple et déconcertante : il suffit de mettre à "true" le booléen qui indique le mode equatorial dans STELLARIUM.
      Encore faut-il trouver la syntaxe. Qu'à cela ne tienne, une recherche rapide dans les nombreux scripts stockés dans le sous-répertoire idoine (C:\Program Files\Stellarium\scripts) permet avec Notepad++ de trouver les séquences qui contiennent la partie de texte "quatorial" (ben oui, ne sachant pas si le mot commence par un 'é' ou un 'e'...).
       
      Alors comme cela m'a pris du temps, et que ça pourrait servir à des astram, je vous livre le code complet de mon script.
      Le contenu est à enregistrer dans un fichier dont l'extension devra être .ssc
      Il suffit ensuite de double-cliquer sur le fichier, et Stellarium se lancera automatiquement en exécutant le script.
       
      La localisation est placée à la terrasse de Meudon. Mais pour vos besoins, vous changez les valeurs par celles de votre site.
       
      Bon ciel,
      Gilles
       
       
       
       
       
      include("common_objects.inc");
      // var MonDIR = "C:/Users/gpasc/Pictures/Stellarium";
      // var MonDIR = core.getEnv("STEL_SKYBOX_DIR");
      // Not finding this environment variable sets DIR to empty string to make storage into default image dir, i.e., "C:/Users/YOU/Pictures/Stellarium"
      // For technical reasons, on Linux you MUST set this variable before running the script.
      DIR=core.getEnv("STEL_SKYBOX_DIR");
      // Base name for the tile textures. Defaults to Unity, can be overridden by setting environment variable STEL_SKYBOX_BASENAME
      BASENAME=core.getEnv("STEL_SKYBOX_BASENAME");
      if (BASENAME.length == 0)
          BASENAME="Unity";
      // Output data file name. Defaults to unityData.txt, but can be overridden by setting environment variable STEL_SKYBOX_DATA
      DATANAME=core.getEnv("STEL_SKYBOX_DATA");
      if (DATANAME.length == 0)
          DATANAME="unityData.txt"
      OUTPUT_DATA=DIR + "/" + DATANAME;
      core.output("Writing images to " + DIR);
      core.output("Writing data to " + OUTPUT_DATA);
      // The following wait times (seconds) are required to arrive at scene before screenshot. Configure for your machine.
      // This must likely allow 2 frames to be drawn before screenshot is valid.
      MOVE_WAIT=0.05;
      SHOT_WAIT=0.15;
      core.setDate(
         '2023-08-21T02:27:59',
         'local'              , // or 'utc' or 'local'
          true                  // enable Delta T correction
      );
      core.setObserverLocation(
          2 + 13/60 + 59/60/60, // core.dmsToRad(2, 13, 59), // longitude
         48 + 48/60 + 19/60/60, // core.dmsToRad(48, 48, 19), // latitude
         151,                       // Altitude
         0,                       // Time to travel
         "",                       // or "Terrasse de Meudon",
         "Earth"                   // This parameter seems necessary
      );
      core.selectObjectByName("Jupiter", false);
      PData = core.getObjectInfo("Jupiter");
      StelMovementMgr.setFlagTracking(true);
      GridLinesMgr.setFlagAzimuthalGrid(false);
      StelMovementMgr.zoomTo(0.07, 1);
      core.setGuiVisible(true);
       
       
      // On force le mode equatorial pour empecher la rotation de champ :
      StelMovementMgr.setEquatorialMount(true);
       
       
      // Lister ici les instants correspondants aux prises de vues
      // Format à respecter :
      //
      //                  "AAAA-MM-JJTHH:MM:SS"
      //
      // L'ensemble des données est stocké dans le tableau ci-dessous
      // C'est le nombre d'éléments, contenus intrinsèquement dans le tableau
      // qui fournira la limite haute de la boucle parcourue plus bas dans ce script.
      //
      var Horaire_Positions = new Array("2023-08-21T02:27:59",
                                      "2023-08-21T02:33:27",
                                      "2023-08-21T02:38:56",
                                      "2023-08-21T02:44:24",
                                      "2023-08-21T02:49:53",
                                      "2023-08-21T02:55:22",
                                      "2023-08-21T03:00:51",
                                      "2023-08-21T03:06:19",
                                      "2023-08-21T03:11:48",
                                      "2023-08-21T03:17:16",
                                      "2023-08-21T03:22:45",
                                      "2023-08-21T03:27:50",
                                      "2023-08-21T03:33:18",
                                      "2023-08-21T03:38:46",
                                      "2023-08-21T03:44:15",
                                      "2023-08-21T03:49:44",
                                      "2023-08-21T03:55:12",
                                      "2023-08-21T04:00:41",
                                      "2023-08-21T04:06:09",
                                      "2023-08-21T04:11:38",
                                      "2023-08-21T04:17:07",
                                      "2023-08-21T04:22:35",
                                      "2023-08-21T04:28:03",
                                      "2023-08-21T04:33:32",
                                      "2023-08-21T04:39:00",
                                      "2023-08-21T04:44:29",
                                      "2023-08-21T04:49:57",
                                      "2023-08-21T04:55:25",
                                      "2023-08-21T05:07:56",
                                      "2023-08-21T05:13:25",
                                      "2023-08-21T05:18:53",
                                      "2023-08-21T05:24:21",
                                      "2023-08-21T05:29:50",
                                      "2023-08-21T05:35:19",
                                      "2023-08-21T05:40:47",
                                      "2023-08-21T05:46:15",
                                      "2023-08-21T05:51:44",
                                      "2023-08-21T05:57:12",
                                      "2023-08-21T06:02:40",
                                      "2023-08-21T06:08:09",
                                      "2023-08-21T06:13:37",
                                      "2023-08-21T06:19:04",
                                      "2023-08-21T06:24:32",
                                      "2023-08-21T06:30:01",
                                      "2023-08-21T06:35:29",
                                      "2023-08-21T06:40:58",
                                      "2023-08-21T06:43:35",
                                      "2023-08-21T06:52:02",
                                      "2023-08-21T06:57:30",
                                      "2023-08-21T07:02:59",
                                      "2023-08-21T07:08:27",
                                      "2023-08-21T07:13:55",
                                      "2023-08-21T07:19:23");
      // The following wait times (seconds) are required to arrive at scene before screenshot. Configure for your machine.
      // This must likely allow 2 frames to be drawn before screenshot is valid.
       
      MOVE_WAIT=0.05;
      SHOT_WAIT=0.15;
      core.setGuiVisible(false);
       
       
      // On stabilise la première position avant de lancer la boucle
      core.setDate(
                  Horaire_Positions[0],
                  'local'              , // or 'utc' or 'local'
                  true                  // enable Delta T correction
                  );
      core.output(Horaire_Positions[0] );
      // on attend 3 secondes pour bien stabiliser la première position
      core.wait(3);
      for (i=0; i<Horaire_Positions.length; i++)
      {
      core.setDate(
                  Horaire_Positions,
                  'local'              , // or 'utc' or 'local'
                  true                  // enable Delta T correction
                  );
      // Régler STELLARIUM à l'horaire pointé dans le tableau :
      core.output(Horaire_Positions );
      // Tempo pour attente de stabilisation :
      core.wait(MOVE_WAIT);
       
       
      // Capture d'écran et sauvegarde dans le repertoire BASENAME + i :
      core.screenshot(BASENAME + i, false, DIR, true);
      core.wait(SHOT_WAIT);
      }
      core.setGuiVisible(true);
      //EOF
    • Par sebseacteam
      Hello,
       
      Voici un exercice que je voulais faire depuis longtemps: du CP en poses courtes (déjà fait avec caméra couleur uniquement) avec 2 capteurs mono/couleur.
       
      Newton 150/750
      Couleur: QHY5III715c avec 513 x 3s
       

       
      Mono: QHY5III678m avec 6293 x 1s
       

       
      On obtient alors:
       

       
      A refaire avec des poses plus longues en couleur, genre 5s voir 10s pour plus de signal. Et garder comme ça en mono.
       
       
    • Par dubedat thierry
      bonjour les amis je me lance en poses courtes ciel profondet c est super sympa  bon c est le debut et je suis nul en traitement  donc pas de miracle surtout avec une mise en station sommaire et donc un suivi pas top et en pleine ville( merci les lampadaires) d ou des etoiles un peu empateeset bien sur m42 et cet ete m 27(250 ms x600 brutes compositees  pour m42 soit150 secondeset 500msx 100 brutes pour m27 soit 50 secondes)  siril et astrosurface  doctelescope 460 f 4.2 asi 533 mc  merci de vos avis c est sur 20 minutes de poses seraiient   necessaires on verra plus tard




  • Évènements à venir