Skip to content

A minimal Rust (opencv) exposure/image stacking implementation for astrophotography.

Notifications You must be signed in to change notification settings

SirBubbls/star-stacker

Repository files navigation

Star Stacker

Description

This crate is an exposure stacking implementation for astrophotography. Here you can find a blog post explaining what this repository is about exactly.

This package primarily relies on opencv to read/write and process images.

Maintainers

  • @SirBubbls

Installation

By default no non-free algorithms are used. You can choose to enable those with the feature opencvx (~cargo build –features=”opencvx”~).

  • Install Rust as you normally would (via rustup)
  • Install the opencv-dev package on your system (guide can be found here Opencv Bindings for Rust)
  • Build the project with cargo build

Usage

You can just compile and run this program with:

cargo run -- -i "GLOB_IMAGES" -o "output.png"

Examples

The repository comes with 3 example datasets you can try out right away. Because they are rather big (around 1 GB) you need to pull them manually with git lfs fetch --all assuming you already have Git LFS installed. To run the examples you can just run:

cargo run -- --input="./datasets/horizontal/*.png" -o "example-horizontal.png" --precision 3
cargo run -- --input="./datasets/vertical_full_size/*.png" -o "example-vertical-fs.png" --precision 3.5

Because of the small image size in the last example we need to adjust the threshold for star detection and the precision for mapping.

cargo run -- --input="./datasets/vertical_small_size/*.png" -o "example-vertical-ss.png" --precision 15 --threshold 4

Results

./docs/images/side-by-side-bright.jpg

./docs/images/side-by-side-close.jpg

About

A minimal Rust (opencv) exposure/image stacking implementation for astrophotography.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages