Skip to content

LCOGT/auto_stretch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auto Stretch

Automatically stretch linear astronomical images for easy visualization.

PyPI version Python versions CI License

Auto Stretch applies a PixInsight-style Screen Transfer Function (STF) midtones transfer to linear astronomical images stored as numpy arrays. It automatically computes the optimal stretch parameters from the image data so that faint detail becomes visible without manual histogram adjustment.

linear (no stretch) arcsin stretch auto-stretch (using this library)
unstretched image arcsin stretch auto-stretched image

Installation

pip install auto-stretch

Quickstart

import numpy as np
from auto_stretch import apply_stretch, Stretch

image = np.array([[0.1, 0.25], [0.8, 0.3]], dtype=np.float64)

stretched = apply_stretch(image)
# or with custom parameters:
stretched = Stretch(target_bkg=0.25, shadows_clip=-1.25).stretch(image)

Input contract

  • Input must be a 2D numpy array. 1D and 3D arrays raise ValueError.
  • Input is coerced to float64 internally; the caller's array is never mutated.
  • NaN pixels propagate through the stretch unchanged.
  • Output is float64 with values clamped to [0, 1].

Parameters

Parameter Default Description
target_bkg 0.25 Target median brightness after stretch
shadows_clip -1.25 Shadow clipping point in units of median absolute deviation below the median

The underlying algorithm follows the PixInsight Histogram Transformation STF method.

Dependencies

  • Python >= 3.10
  • numpy >= 1.20

Credit

Based on the PixInsight Screen Transfer Function (STF) algorithm developed by Pleiades Astrophoto.

License

MIT — see LICENSE.

About

Stretch fits data for easy visualization

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages