PixInsight Forum (historical)
PixInsight => Tutorials and Processing Examples => Topic started by: Juan Conejero on 2009 December 03 17:12:58
-
Hi everybody,
I am glad to announce a new series of video tutorials: Mosaic Construction with StarAlignment. The first two videos of this series are now available on our website:
http://pixinsight.com/videos/StarAlignment/Mosaic/en.html
A third video is in preparation and should be ready in a couple days. I hope you'll like them. Enjoy!
-
Well done "Alex"
By the way, The pixel math process shown in the 2nd video is good candidate for a time saving script to help find k1 and k2.
Max
-
Well done "Alex"
By the way, The pixel math process shown in the 2nd video is good candidate for a time saving script to help find k1 and k2.
Max
This calculation is more or less what the HDRComposition script does to scale the images.
Vicent.
-
Hi Juan
Excellent work :D
All I need are some clear skies so I can mosaic something :'(
Harry
-
Hola a todos:
Un vídeo muy oportuno. ¡Gracias Juan!
Estoy intentando obtener una California con un mosaico de dos encuadres, aunque en cada intento las nubes se han encargado de impedirlo.
Mi pregunta al respecto es la siguiente:
¿Con imagenes RGB hay que hacer el ajuste de las "costuras" por canales?
Saludos.
-
Hola a todos:
Un vídeo muy oportuno. ¡Gracias Juan!
Estoy intentando obtener una California con un mosaico de dos encuadres, aunque en cada intento las nubes se han encargado de impedirlo.
Mi pregunta al respecto es la siguiente:
¿Con imagenes RGB hay que hacer el ajuste de las "costuras" por canales?
Saludos.
Hola,
sí, siempre hay que hacerlo por canales. La extinción atmosférica es más alta cuanto más hacia el azul. Además, puede que cambie el fondo del cielo entre los dos paneles.
Vicent.
-
Hi everybody,
I am glad to announce a new series of video tutorials: Mosaic Construction with StarAlignment. The first two videos of this series are now available on our website:
http://pixinsight.com/videos/StarAlignment/Mosaic/en.html
A third video is in preparation and should be ready in a couple days. I hope you'll like them. Enjoy!
I downloaded the first two - wow what functionality! That simply blew me away with the ease and apparent simplicity of the process. I can see it will be a process to practice to perfect but man how good is that. I look forward to reprocessing some older images I have taken to see if this can bring out a better result. I gave up on processing a mosaic because I had no real way of making the seams go away and making the images the same. This is brilliant! When can the third one be available to view?
-
Hi Juan
Well done, these videos tutorials are worth a thousand of words :)
Thanks
Antoine
-
Hello everybody.
Tell me the correct way to create a mosaic.
I want to glue together a mosaic of 2x2. For each piece of shot 5 frames. Total I have 20 frames. See pic.
What is the best?
a) Align 4 times 5 frames > integrate in 4 parts of the mosaic > crop black frame > glue mosaic.
b) Merge to 4 mosaics > align > integrate.
c) Align all 20 frames on reference star field (StarGen or DSSImages) > integrate in 4 mosaics (via mask & PixelMath process shown in the 2nd video) > integrate.
Method a) is easiest, but required more overlapped field because need to crop black area around overlapped region.
Method b) is more attractive because no need to crop, have more chance to create mosaic with minimum overlapping, but distortion more critical. And more ease to get wrong alignment.
Method c) I hope is much more attractive because not have problem of a) and b), and don't required double alignment, but requires laborious manual work.
Please consult if you know a better way.
Best regards,
Nikolay.
PS I can't test c) because StarGen still generate "dancing" stars (wrong epoch). And I can't use DSSImages, because I have 3.7x3.7o field.
-
Hi Nikolay,
(a) is indeed the easiest way and (b) is potentially problematic due to distortion. I agree completely with what you've said.
(c) is the most accurate way because you work on a fixed geometry. It is indeed slightly more difficult and may require some manual work (although I think StarAlignment can work with conic projection and a 4ºx4º FOV. However, please note:
- You no longer need the PixelMath technique because StarAlignment provides now an automatic frame adaptation feature that works remarkably well in all cases. I still have to make the third video where I'll explain all of this.
- I don't understand what's wrong with StarGenerator. There was a bug on Windows in version 1.5 but version 1.6.0 has fixed it completely. Or it should. It works nicely in all our tests. What do you refer to by "dancing stars" and "wrong epoch" ? Can I see an example of this?
That said, I think that (a) should work very nicely with 2-D spline interpolation and automatic frame adaptation, provided you have enough overlapping. Remember that the latest version of StarAlignment is able to work with really tiny overlapping, thanks to the new automatic intersection finding routine. Remember also that if you have to face a *really* difficult problem, you still can define previews on the frames to help SA to work with absolutely minimal overlapping.
-
- I don't understand what's wrong with StarGenerator. There was a bug on Windows in version 1.5 but version 1.6.0 has fixed it completely. Or it should. It works nicely in all our tests. What do you refer to by "dancing stars" and "wrong epoch" ? Can I see an example of this?
Hi Juan,
Compare two images from attachment. It's 300% zoom. As you can see some stars stay in place, some stars move.
I upload to FTP original(W/O alignment) NGC7000.fit.zip (RA/DEC and other data in FITSHeader) and StarGen.fit.zip (image from StarGenerator).
If you have a time and at your computer StarGenerator is working properly, please generate for me your version of star's field and upload to FTP.
Best regards,
Nikolay.
-
(c) is the most accurate way because you work on a fixed geometry.
- You no longer need the PixelMath technique because StarAlignment provides now an automatic frame adaptation feature that works remarkably well in all cases. I still have to make the third video where I'll explain all of this.
Sorry, but how to use "automatic frame adaptation" with reference image produced by StarGenerator?
I mean I have two light frame and one StarGen image. I try to create mosaic (one first image applyed without frame adaptation, other 3 images with auto adaptation) and got wrong result.
-
Hi Nikolay,
Thanks for uploading the images. I get the same result from StarGenerator on all supported platforms, so there's no longer a bug in the Windows version of this tool —this is good stuff!
Indeed there are differences in the star positions between your real image and the StarGenerator synthetic image. On one hand, the differences in the four corners of the image are obviously due to field distortion (field curvature, I guess). The other differences are probably due to small accumulated errors in the computed proper motions. Although the PPMX catalog is very accurate, bear in mind that some of the proper motions have been calculated from astrometric observations gathered during very long periods.
As a counter-test, I have generated two versions of the StarGenerator image: one for your observation epoch (2010/05) and another for the J2000 epoch. When I register both synthetic images with your real image, StarAlignment computes consistent inlier quality factors of 0.5 and 0.4, respectively. In other words, when the correct epoch is specified in StarGenerator, StarAlignment can find more star pair matches between the generated synthetic image and your real image. This clearly shows that applying proper motion corrections improves the result. However, as I've said this isn't perfect.
In my tests, selecting the 2-D surface spline interpolation algorithm in StarAlignment provides somewhat better results, as this algorithm can correct small-scale distortions better than the default homographic projection. However this doesn't fix the problem completely.
Having said that, I think you should have no problems to build your mosaic on top of a synthetic StarGenerator image. Although not all of the stars will match, StarAlignment will be able to find a valid transformation for your four mosaic frames.
-
how to use "automatic frame adaptation" with reference image produced by StarGenerator?
Excellent question. You cannot, as the synthetic image only contains stars and nothing similar to the rest of the "background" in your real image. The frame adaptation function will tend to underestimate the background values on each registered image. I must admit that I didn't think on this particular problem before.
A good solution could be building your mosaic and then re-align the three frames again over the result. This should provide more accurate frame adaptation functions. If necessary, the same process can be repeated for a second time. With these iterations the result should be perfect. The alternative is the manual PixelMath method with alignment masks
I plan on implementing the frame adaptation algorithm as an independent tool. This will be a perfect solution for cases like this one, as the frames can be adapted prior to mosaic construction.
-
Juan, thank you very much!
Especially thanks for this:re-align the three frames again over the result. This should provide more accurate frame adaptation functions. If necessary, the same process can be repeated for a second time.
:)
-
Hi Nikolay,
Do you mean it works? 8) I want to see your result!
-
Do you mean it works? 8) I want to see your result!
Maybe it's works, but not as perfectly as I want. Maybe problem with my images or calibration.
Yes, I got much better result. Especially now better field of view geometry and only one time was applied interpolation. ;)
Now I think about this one: I want avoid double image interpolation (double alignment).
How: I can align all images to one big StarGen image. After, I can integrate 4 parts of mosaic ( I hope "Scale + zero offset" will care big black border properly. Maybe checker "Ignore zero" can help.). But I can't integrate 4 parts to one mosaic without mask... Must I write script? Or there are any way to create mask for "Region of Interest"? Like DynamicCrop, but producing a masks?
Juan, do you have place for checker "Ignore zero" in future "frame adaptation tool"?
Best regards,
Nikolay.
-
Nikolay,
WOW! I don't know how perfectly you want it to be, but judging from the image you've posted, you've got a nearly perfect result IMO!
Now I think about this one: I want avoid double image interpolation (double alignment).
How: I can align all images to one big StarGen image. After, I can integrate 4 parts of mosaic ( I hope "Scale + zero offset" will care big black border properly. Maybe checker "Ignore zero" can help.). But I can't integrate 4 parts to one mosaic without mask... Must I write script? Or there are any way to create mask for "Region of Interest"? Like DynamicCrop, but producing a masks?
I am not sure if I understand you. Do you mean zero rejection in ImageIntegration? In such case, I already implemented it as you know. What do you mean by "I can't integrate 4 parts to one mosaic without mask" ??
Juan, do you have place for checker "Ignore zero" in future "frame adaptation tool"?
In fact, it has already been implemented. The frame adaptation routine automatically rejects all pixels <= 0 and >= 0.92. Zero pixels are not being taken into account. However, in the case of StarGenerator synthetic images the problem is that the frame adaptation algorithm doesn't have enough data to compute a good linear fit between the images.
-
WOW! I don't know how perfectly you want it to be, but judging from the image you've posted, you've got a nearly perfect result IMO!
Yes, it's looking good, but actually simple way is better (method A. I got better result of frame adaptation, but I got bad geometry. )
Do you mean zero rejection in ImageIntegration? In such case, I already implemented it as you know.
Yes, but actually ClipLowRange doesn't work properly. Look again to the bug report about ImageIntegration problem (http://pixinsight.com/forum/index.php?topic=1869.0). ;)
What do you mean by "I can't integrate 4 parts to one mosaic without mask" ??
OK. I align all images to StarGen and integrate 4 pieces of mosaic (see pic1). So, I got a geometrically perfect and aligned 4 pieces puzzle! 8)
If you look closely to interception area (see pic2), you can see the problem. :footinmouth:
I think fill the problem area with zeros. It's will allow to use PixelMach or new "frame adaptation tool" to integrate perfect mosaic.
In fact, it has already been implemented. The frame adaptation routine automatically rejects all pixels <= 0 and >= 0.92. Zero pixels are not being taken into account.
Sounds good! How soon we will celebrate Independence Day of "frame adaptation tool" ? I want to avoid double alignment.
Add:
But really, the frame adaptation routine automatically rejects all pixels <= 0 and >= 0.92 or Compute Intersection doesn't work (with images shown in pic1)... I got pure black image:
See console report:
StarAlignment: Processing view: _0001
_0000:
Structure map: 100%
Detecting stars: 100%
4789 stars found.
_0001:
Structure map: 100%
Detecting stars: 100%
2345 stars found.
Computing intersection ...
Intersection:
R1 : { 107, 1971, 2081, 2143} 190 stars
R2 : { 107, 1971, 2081, 2144} 201 stars
?21 : 0°
Matching stars ...
149 putative star pair matches.
Performing RANSAC ...
132 star pair matches in 414 RANSAC iterations.
Summary of model properties:
Inliers : 0.886
Overlapping : 1.000
Regularity : 0.914
Quality : 0.867
Root mean square error:
?RMS : 0.661 px
Average RMS error deviation:
?RMS : 0.317 px
Peak errors:
?xmax : 0.383 px
?ymax : 1.714 px
Transformation matrix:
+1.0117 +0.0061 -12.2719
+0.0004 +1.0240 -25.7375
-0.0000 +0.0000 +1.0000
Generating mosaic image: _0001_mosaic
Building 2D surface interpolation grid ...
2-D Surface Spline / Bicubic Spline Interpolation, c=0.30: 100%
Linear frame adaptation functions:
y0 = 0.000022 + -0.000001·x0
-
Juan,
has the third sequel come off the production line yet?
-
hey guys where do i find the file "frame adaptation" used in the tutorial to drag and drop in the pixel math operation?
-
ok i just worked it out DOH! the BL becomes the image reference. for the dummies - including me is there a video tutorial on Pixel math and creating and using functions - like this one? took me a while