Astrophotography tools in Julia - image processing and hardware control

I’ve been an amateur astronomer for the past 15 years or so, and only recently have I gotten into astrophotography. (Exhibit A, a 3-panel IRG mosaic of several deep-sky objects in the Small Sagittarius Star Cloud)


It seems like the standard approach to image processing is to buy Pixinsight and use the huge ecosystem of tools and plugins available for it, but I prefer to take a different approach and use as many open source tools as possible - after all, anyone can visit the Mikulski archives and process raw Hubble or JWST data. I also personally avoid using black-box tools in my processing (anything involving machine learning/neural networks).

What packages do you think would be useful in astrophotography, and where do gaps exist? Here’s what comes to mind for me.

Image processing

  • DeconvOptim.jl: Performs fast Richardson-Lucy deconvolution. Oriented towards microscopy, but I don’t think that’s a problem.
  • CloudCovFix.jl: a package that can infill the background from images which have had stars removed. I learned about this one at JuliaCon 2025.
  • BlockRegistration.jl: I will be testing this package for registering lunar and planetary images that are affected by atmospheric seeing.
  • A package for image stretches? Astrophotographers commonly use generalized hyperbolic stretches or asinh in their processing.
  • Denoising? I’m interested in incorporating data from calibration frames when performing denoising. I’ve come to realize that some sources of noise in my image sensor cannot be modeled as purely uncorrelated.

Instrument control

  • LibASICamera.jl: Unmaintaned interface for ZWO ASI cameras.
  • Some new package for working with ASCOM, INDI, or other common interfaces to astronomical hardware?
4 Likes