Image16 1.8 Astrophotography Image Editor

This software and reference materials are provided "as is" without warranty as to their performance, merchantability, fitness for any particular purpose, or against infringement. The author assumes no responsibility for the use or inability to use this software. The author shall not be liable for indirect, special or consequential damages resulting from the use of this product. The author shall have no liability or responsibility for software altered, modified, or converted by you or a third party, damages resulting from accident, abuse or misapplication, or for problems due to the malfunction of your equipment or software not supplied by the author.

Requirements:
- windows 7 to 11 (32 or 64 bits)
- linux + wine 6 to 8 (wine 8 preferred)
- macos + wine 7.7 (gcenx wine-crossover)
- under windows 32bit (or wine 6) 2GByte of memory can be used
- under windows 64bit (or wine 7/8) 4GByte of memory can be used
- under windows (or wine 7/8) undo bitmaps can be stored in page-file backed shared memory (up to 6GByte)
- astrometry.net (plate solving) can be used natively under wine on linux/macos and wsl on windows

2021/2023 Valentim Batista
Download Image16 Download Image16

* Arithmetic functions between image and image buffer with copy/paste * AsinH, Sqrt, Ln, Exp and Sqr stretching of image or LRGB channels
* ASTRO-TIFF 1.0 support * Auto ASinH stretching, RGB and Mono
* Auto Median stretching, RGB and Mono * Background Extraction for Color Balance, Flatness Correction and Gradient Reduction
* Blurring: Blur, Box, Gaussian with protected Gauss Blur chroma/luma operation (bilateral blur) * Channel add operation for SHO addition to LRGB images
* Channel/Image registering through platesolving * CLAHE (contrast limited adaptive histogram equalization) - locally improves contrast in images limiting noise amplification
* Color space conversion RGB / HSL / CIE L*a*b / YCbCr * Command line parameters and options to allow scripting
* Copy/Paste of XCF top layer (16 and 32 bits) * Curves adjusting RGB / HSL / L*a*b
* Dark subtraction and Flat division * Debayering and Bayering (bilinear)
* Draw shapes/text on selection * EAA (electronically assisted astronomy) support - can stack images as they are captured or afterwards
* Edge detection: Laplacian, Laplacian of Gaussian, High Pass, Blur Map * Exports/Imports RGBL channels into/from another window for separate processing (stretching, background extraction, noise reduction, etc...)
* Fullscreen mode * G'MIC interface - execute any G'MIC commands over the current image
* G'MIC special Haar-Wavelet command interface for image denoising * G'MIC special Richardson-Lucy command interface for image deblurring
* Gamma adjusting (with sRGB/Linear quick operations) * Gradient Tool for gradient removal - select two points in the image to extract a gradient background and remove it
* Gray Scale and Channels Extraction * Histogram display, equalization and specification
* HSL and RGB adjusting * Image barrel/pincushion correction and geometric stretching
* Image inversion, mirroring, rotation * Image Math - apply operations to images having the main, buffer, mask and clipboard images as operators
* Image rank operations: Erode, Dilate, Mean, Median, Variance, StdDev, etc... * Image resizing and cropping with auto cropping of borders
* Imports and exports PSD image files (merged image only) * Imports and exports XCF image files (top layer only)
* Imports and exports XISF image files * Imports ORA image files
* Imports SBIG Type 3 image files * Includes Bright Star Catalogue up to magnitude 5 and Tycho 2 Catalogue up to magnitude 12 color index and magnitude information
* Includes UCAC4 Catalogue magnitudes and color indexes for stars between magnitudes 12 and 14 as extra (large instalation) * Interfaces with Starnet++ 1.1 and 2.0 for starless image extraction
* LCE (local contrast enhancement) * Levels adjustment
* Levels RGB auto background helpers * Local Normalization (adapted from description)
* LRGB/SHO channel processing * Macro recording, playing, saving and loading - repeat/redo operations
* Masked Undo (allows to undo previous operation using a mask of pixel undo levels), mask generation from image (transfer curve) * Max merge channel operation for SHO addition to LRGB images
* Modulate Saturation by Lightness (HSL) * Mouse draw/clone/undo/blur/unsharp/lighten/darken
* Opens and saves TIF, FITS, PNG, JPG and BMP image files * Opens RAW image files using dcraw.exe
* Optionally performs initial ASinH stretch on 32bits TIF and FITS images before converting to 16bits * PIP (power of inverted pixels) (adapted from description) - shadows enhancement
* Plate solving through ANSVR or astrometry.net local instalation, nova.astrometry.net web server or local mirror. * Plate solving through image submission (FITS or JPEG) or star list submission available.
* Plot (annotation) image generation from plate solve information and DSO/Stars internal databases of positions/radius and also outlines * Resize/Rotate interpolations: Nearest, Linear, Cosine, Cubic, Lanczos
* RGB alignment to image maximum point (ideal after debayering) * RGB alignment/shifting/rotation/resizing (with custom rotation center)
* SCNR (subtractive chromatic noise reduction) (adapted from description) - green noise removal * SGBNR (gauss blur with details protected by Laplace mask) (adapted from description)
* Sharpening: Unsharp Mask (Gaussian) with chroma/luma operation * SMI Enhancement (adapted from description) - enhancement of faint detail
* Star Extraction - fast draft star extraction for separate processing * Uses ASCOM platform to connect to ASCOM devices as Cameras to image capture
* Wavelet decomposing (softening/sharpening/contrasting) * Wavelet denoising (soft thresholding)
* White/Color Balance based on background, selection or stars B-V (after platesolving)


Developed in Delphi and uses Graphics32, LibTiffDelphi, DCRAW and TPNGImage Delphi libraries.
Includes LZ4 Fast LZ compression library for XISF file support.
Interfaces with ASCOM, Starnet++, G'MIC and ANSVR software.
Interfaces with Astrometry astrometric calibration service with image and star list submission.
Exchanges 16bits images with Gimp through XCF Copy/Paste and Import/Export
Parts of Image16 were developed in AltPE (8bit image editor), AstroTimer (astro image capturing) and Solver (plate solving) projects.
Libraries for handling of 16bit mono (16bit channel), 32bit color (Graphics32 interface) (8bit channels), 48bit (main library for 16bit channels) and 96bit (32bit channels) bitmaps are included in the source, with the possibility of 48bit bitmaps beeing stored in page-file backed shared memory.
Libraries for FITS, JPG, ORA, PNG, PSD, PXM, RAW, STX, TIFF, XCF and XISF input/output are included in the source.

Available with or without optional UCAC4 catalogue based information on magnitudes and color indexes for stars between magnitudes 12 and 14.


Examples

OSC processing

This program can be used to process images after stacking, one RGB image produced stacking several color images captured with a DSLR or dedicated OSC camera or several images produced stacking groups of images captured using a dedicated monochrome camera and filters.
Either way you have at least an image to process and normally this is a 32bits depth image if TIFF or FITS format. Image16 handle the images on a 16bits depth space and offers the option of proceed to stretch the image before converting from 32bits to 16bits applying a ASinH auto stretch. The difference can seen on the resulting histograms where the one from the image stretched while in 32bits is much smoother.


Image without stretching

Image with auto stretching in 16bits

Image with auto stretching in 32bits

A this point the process can start by extracting the background using Manual Background Extraction. A grid of background points (B) are to be defined from which a grid of points will interpolated (I) which in turn will be interpolated to generate the synthetic background image to be used to reduce the effects of light polution on the background subtracting it or to reduce exposure errors that could not be eliminated using flats dividing by it.
The initial grid of B points can be set using the mouse point by point or automatically using a level as reference of what is to be considered acceptable as background. Clicking with the left mouse button defines points and the right mouse button can be used to clear points, clicking or dragging the mouse through the picture using the shift, alt and ctrl keys to enlarge the cleaned area.
To set the points automatically a grid size is defined from 10x10 to 100x100 cells, a box size of 10x10 to 400x400 pixels, an option to overlap defines if the box is constrained by the cell size or not, a margin which defined the border of the image excluded from the search for B points, a tolerance that defines how much near the upper background level from the lowest point found on the box can a point be and still be considered as background and contribute to the value of the final background level assigned to the box that is going to be represented by a B point and an option to recenter points which recenters the center point of each box to the weighted average point of the box point considered as contributing to the background level.
The defaults are good to automatically define a background excluding lighter areas. The overlap and option can be unset to force to define a regular grid.
The automatically defined points can be selectably cleared to remove non background area from the computed background using the gamma slider to exagerate the level to more clearly identify areas to be cleared.
After extracting, use edit to remove points that should be cleared or to manually add points.
Several grid configurations can added and the restart button clears all point so that the process can be started from scratch again. Sometimes is desirable to define thin grids on the borders without recentering and mix that with coarse grid on the center of the image. If you a have exposure defect to be correted by dividing the image by the synthetized background the defect area should be covered by a thinner and not recentered grid so that the points can represent the defect.
The generated background can be extracted, copyed to the buffer for further operation or directly used in a subtraction or division or even as a gray area for a white balance based on the extracted background.


before defining background points

a 40x40 grid without overlap and recenter and (box size around 75x75)

a 40x40 grid with overlap and recenter, yellow point contributed

subtraction result

After extracting the background we can proceed to use SCNR, a form of subtractive color noise reduction specially useful to deal with green noise.
Several options are available but the default Average/Average Neutral applied to the green color while keeping the lightness normally works well.


before SCNR

after SCNR

Platesolving the image and using the information to compare the color of the stars to their B-V information defining the corrections that can be made to R and B channels in order to reduce the difference.
Image16 can use ANSVR directly or either nova.astrometry.net or a local astrometry mirror and submit the image for plate solving. For nova.astrometry.net a API key is needed and each user must get its own from the site after registration and login. ANSVR direct access is limited to image submission but Image16 can generate a star positions list and submit it to astrometry. In order to use a local astrometry mirror the URL must be defined. For ANSVR to be able to plate solve the image the Index Manager must be used to download the correct indexes for the image resolution.
For faster plate solving is better to reduce the search area, a center point and a radius (degrees) is useful. The platesolve interface offers the possibility to search for a deep sky object or a star from the internal database that includes objects from several catalogues: Abell, Barnard, Caldwell, Bright Star, IC, LBN, Messier, NGC, Sh-2 and UGC. Another way to reduce the plate solve time is to define the resolution of the image and for this you can fill the focal length of the device and the pixel size of the camera used to capture this image which will be used to compute the resolution in arcsec/pixel or it can be directly entered. With the resolution a low and high resolution will be used to narrow the search field.


platesolving parameters

platesolving completed

star color correction

Next can be saturation adjustment using HSL Adjust. Gamma adjustment using B/W protection to reduce the effect on extremes of the histogram.


adjusting saturation

adjusting gamma

Now a mask can be generated from the image allowing for masked undo where the mask zones in white will suffer a total undo while the zones in black will suffer no undo. After generated the mask can be converted to monochrome and blurred and inverted for some operations to reverse the undo effect.
The mask can be used for partial undo of a chroma only bilateral blur (limiting the effect relatively to the local variance of the pixel) with a set threshold (limits its effects acording do the luminance of the pixels).
Or to partially undo a wavelets denoising or a wavelets decomposing. Wavelets denoising and decomposing work by splitting the image in several images each of them representing a scale or frequency and then working on each scale separately, applying a threshold below which data is considered noise and ignored the image is denoised, and changing the composition of the recomposed imaged low or high frequencies can be enhanced.


generating a undo mask

smoothing the chroma on the darker areas of the image

using wavelets threshold denoising

using wavelets decomposing to enhance detail

LCE, local contrast enhancement can be used one or more time varying the radius of the effect.


applying LCE

after LCE

Starnet++ can be used to separate the stars from the nebulosity so that each can be processed differently.
The starless image can then be copyed to the buffer and subtracted and the result is a stars only image.
Both images can now be processed. The stars image was color corrected again using the stars B-V and the starless was given more saturation.
Both images were added again, starless was copyed and pasted on the original image window buffer that was then added to the image.


running Starnet++ on the image

the result: a starless image

subtracting the starless from the image

adding the starless and the stars again


RGB processing

NGC6992 RGB+HO data from www.deepskywest.com
“Image Acquisition by the staff at Deep Sky West Remote Observatory (www.DeepSkyWest.com)”


green channel image

import red channel image

only green image was plate solved

importing red channel

importing blue channel

color level correction

background extraction

after b-v correction, import Halpha

max merge Ha to red channel

max merge O to green channel

max merge O to blue channel

RGB+HOO


SHO processing (Hubble palette)

Rosette Nebula NGC2244 SHO data from rockchucksummit.com


Ha as green channel image

import SII as red channel

importing OIII as blue channel

after channel stretching and SCNR

after stretching, saturation and LCE


Contents


Command line

command line format:

   open clipboard: img16.exe @ [IPChandle] [IPCchannel] [/mac:macrosequence] [/sas:filename] [/clo]
   open/delete temporary file: img16.exe ! filename [/s16] [/mac:macrosequence] [/sas:filename] [/clo]
   open files and/or macros: img16.exe [filename/macro [, ...]] [/s16] [/mac:macrosequence] [/sas:filename] [/clo]

  options:

    /s16 - force auto stretch when converting 32bits images to 16bits
    /mac:macrosequence - execute macro sequence "macrosequence" with steps separated by \n, step parameters by \t and filenames encoded with \\
    /sas:filename - force image save as after image/macros loading and processing, filenames can be relative to the loaded file path
    /clo - force close after image/macros loading and processing

Interface

Caption, Top Bar and Image

Menus


File opening/importing, saving/exporting

go to top

Open, Browse, Save, Save As, Import, Export, Close, Exit are as usual.

File checkpointing and reverting

go to top

Checkpoint – save an intermediate version in a temporary file allowing a rollback in the future to a certain point in the image edition.
Revert – reload the original file from disk.

File merging

go to top

Merge/Add/Max Image – merge two images with aligning (platesolve+auto).

File registering

go to top

Using alignment (platesolve+auto) resize, displace and rotate image to make it directly overlayable with another.

Channel file merging

go to top

Import/Add/Max Merge Channel – merge one channel from a file allowing for LRGB and SHO processing with aligning (platesolve+auto). Three different merge operations available, import a channel, add it or merge the maximum values.
note: Auto aligning is limited to +/- 3 pixels in x/y directions and platesolving must be used for larger and complex alignment including x/y shift, rotation and resolution matching. Auto aligning follow platesolved alignment after which the user can validate and correct the x/y shift applied. Platesolved alignment requires previous platesolving of both images being merged.

Recent files opening

go to top

Recent Files – lists recent edited files for quick reopening.

Undo and Redo

go to top

Undo and Redo are as usual.
Undo Undo – undo last undo allowing to undo again.
Semi Undo – merges the image with the undo image (50%).
Merge Undo - merges the current image with the undo image with alpha.
Undo Lightness – recovers previous image lightness allowing that an effect is restricted to the chroma information.
Clear Undos – release all undo images in memory.
Distance to Undo – arithmetic difference between the current image and the undo image.

Copy and Paste

go to top

Copy, Paste, Paste Into New Window are as usual.
Copy Bitmap – copies to clipboard an 8 bit bitmap for compatibility.
Copy XCF and Past XCF – exchange 16 bit images with Gimp.
Copy Metadata – copies FITS, TIFF or XISF metadata.

Channels: Copy and Paste

go to top

Channels (RGB, HSL ou L*a*b*)
Copy into new window – copies a channel and opens it in another window from where, after processing, can be directly fetched
Paste from window – fetches previously copied image channel information after processing
Paste channel - pastes a channel from the clipboard
Paste Add channel – pastes a channel adding it
Paste Max channel – pastes a channel merging the maximum values
Note: paste and add, max channel operations are x/y shift auto aligned and the alignment can be validated and corrected before applying

Selecting

go to top

Select All, Select None are as usual.

Buffer Put, Get, ...

go to top

Put, Get, Exchange, Delete operation on Buffer from/to image.

Buffer Copy and Paste

go to top

Copy, Paste, Copy Into New Window from/into Buffer are as usual.

Buffer Image Operations

go to top

Several functions to perform between an image buffer and the current image. For example, pasting the Starnet++ result and subtracting it from the original image would get an star only image.

Buffer Operations

go to top

Several functions to perform directly on Buffer.

Mask Put, Get, ...

go to top

Put, Get, Exchange, Delete operation on Mask from/to image.

Mask Copy and Paste

go to top

Copy, Paste, Copy Into New Window from/into Mask are as usual.

Mask Creation

go to top

An image mask can be generated from the current image using a histogram transfer function.
An image mask can also be created from the Standard Deviation of the current image.
The mask can be added or subtracted with ellipses or rectangles defined by the selection.
The mask aca also be retouched or painted in exchange mode (as image).

Mask Operations

go to top

Several functions to perform directly on Mask.

Masked Undo

go to top

This undo affects the current image proportionally to the correspondent level in the mask, as white is a complete undo and black a complete keep.
Use negative on the mask to reverse the effect.

Zoom

go to top

Zoom in and zoom out can be executed using the mouse wheel or the shortcut keys Z/Shift+Z.
Fit (shortcut key W) fits the image totally to the window and if already fit then fits the image width to the window.

Toolbar

go to top

You can hide or unhide the Toolbar.

Buffer, Mask and Histogram

go to top

You can hide or unhide the Buffer, Mask and Histogram floating windows.

Info and Metadata

go to top

On Info you can access some information about the current image LRGB channels and plate solve information if available.
On Metadata you can access the metadata information of the current image.

Timing

go to top

Measures the time that each operation takes to perform.

Fullscreen

go to top

Maximizes the app on the current window while hiding all non-image program areas leaving only the image to be displayed.
While in fullscreen mode the Alt key shows the hidden menu.

Mode and Precision

go to top

On Mode convert the image between RGB and Grayscale.
On Precision convert the image between 8bits and 16bits.

Invert, Mirror, Rotate, ...

go to top

Invert, mirror and rotate the image.
Polynomial pincushion/barrel distortion.
Polynomial angle stretching.

RGB Align and Shift

go to top

RGB align the image either on pixel or on a subpixel level using all image, a selection or a maximum zone of the image as the area to compare and align between RGB channels.
RGB shift, rotate and resize independently R and B channels while G channel stays unchanged. Use the mouse to select center of rotation after center shifting a point (star).

Crop, Size and Resize

go to top

Crop to Selection, Crop to Undo which crops the image to undo size, Auto Crop that seeks absolute black borders to crop and Crop Five that reduces 5 pixel on each size to eliminate corrupted borders.
Resize which resizes an image to a set size or fraction of current size.
Half Size resizes the image combining each four pixels square into one.
Size cuts or expands the image size while not resizing it.

Rank Operations

go to top

Rank operations, the usual Erode, Dilate, Open and Close, but also Mean, Median, Variance, Standard Deviation, Mode, Geometric Mean and Root Mean Square.

Blur Operations

go to top

Gaussian Blur is an operation that allows the blurring of the current image with a preview function where various parameters can be adjusted: the channels affected can be selected between luma, chroma or all; the radius (sigma) can be specified between 0 and 100; a threshold can be set that limits the effect produced below a luminance level with a smooth curve transition; an alpha can be set that defines how much of the effect produced will be merged bach into the current image; a protection level defines how to skip pixels in high luminance variance.
Box Blur - predefined kernel sizes from 3x3 to 9x9.
Gauss Blur - predefined kernel sizes from 3x3 to 9x9.
SGBNR - Blurring protected by StdDev mask.

Sharpen Operations

go to top

Unsharp Mask (Gaussian) is an operation that allows the sharpening of the current image with a preview function where various parameters can be adjusted: the channels affected can be selected between luma, chroma or all; the radius (sigma) can be specified between 0 and 4; a threshold can be set that limits the effect produced below a luminance level with a smooth curve transition; an alpha can be set that defines how much of the effect produced will be merged bach into the current image.
Unsharp Mask - predefined kernel sizes from 3x3 to 7x7.
Sharpen - predefined kernel sizes from 3x3 to 5x5.
Enhance - predefined 3x3 kernel size.

Edge Operations

go to top

Difference of Gaussian (DoG) is an operation that allows the edge enhancing of the current image with a preview function where various parameters can be adjusted: the channels affected can be selected between luma, chroma or all; the radius (sigma) can be specified between 0 and 20; an order can be set between 1 and 8; an alpha can be set that defines how much of the effect produced will be merged bach into the current image.
Laplacian - predefined kernel sizes from 3x3 to 5x5.
Laplacian of Gaussian - predefined 3x3 kernel size.
High Pass
Blur Map

Convolve Operations

go to top

Program and Execute convolution operations with a configurable kernel up to 9x9, division, addition and thresholds. Get last convolution executed. Preview the effect.

Wavelet Operations

go to top

Wavelet Recompose (High) decomposes the image in the highest frequencies layers and recompose the image varying the layer composition while at the same time applying a threshold to each layer reducing the respective noise.
Wavelet Recompose (Low) decomposes the image in the lowest frequencies layers and recompose the image varying the layer composition.
Wavelet Denoise decomposes the image in the highest frequencies layers and recompose the image applying a threshold to each layer reducing the respective noise and optionally a alpha that can reduce the proportion in the produced image of the denoised layer in relation to the original.
Wavelet Background Extraction extracts the lowest frequency layer. Wavelet Background Removal extracts the lowest frequency layer and removes it from the image.

Image Math

go to top

A way to apply operations to images selecting input, operator, mask and output images between the main, buffer, mask and clipboard images. All images can be inverted and/or have RGB and L channels multiplied by a factor between 0 and 2. If the output is the main image there is a preview feature to check the effect of parameters combinations.

Blend modes operations available only in Image Math: Screen, Overlay, SoftLight, Reflect, Freeze, Interpolate

  Screen [o = 1 - (1 - a)(1 - b)]
  Overlay [if (a<0.5) { o = 2ab } else { o = 1 - 2(1 - a)(1 - b) }]
  SoftLight [o = 2ab + (1 - 2b)a^2]
  Reflect [o = a^2 / (1 - b)]
  Freeze [o = 1 - (1 - a)^2 / b]
  Interpolate [o = 0.5 - 0.25*cos(pi*a) - 0.25*cos(pi*b)]


Star Extraction

go to top

A quick way to split nebulosity from the stars.

Stretching (ASinH, Sqrt, Ln, Exp and Sqr)

go to top

Non-linear RGB stretching (ASinH, Sqrt, Ln) and unstretching (Exp, Sqr). Select black level and stretching power.

Adjusting (HSL and RGB)

go to top

Linear RGB and HSL adjusting.
Modulate S by L reduces S for low L values and increases S for high H values selecting the amount affected, the threshold dividing low L from high L values and the transition curve type (Sin, Average, Linear, Sum).

Levels Adjusting (LRGB)

go to top

Adjust black, midtones, white levels on input and black and white levels on output.
Overlap left side of RGB histogram curve to neutralize the background.

Auto Adjusting (ASinH Stretch, Background RGB and Median)

go to top

Apply auto adjusting of non-linear ASinH stretching, auto neutralizing of background RGB values and auto adjusting of the Median values (RGB or Luma).

Curves Edition (RGB, HSL and L*a*b*)

go to top

Work on RGB, HSL or CIW L*ab spaces.

Tones (Hue) Adjusting

go to top

Shift image hues.

Gamma Adjusting

go to top

Gamma correction and Linear/sRGB conversion.

Histogram Equalization and Specification

go to top


Background Extraction

go to top

Select automatically or manually points that define the background and interpolate/synthetize a background image that can be extracted, put to the buffer or used on the current image to subtract, subtract-multiply, divide or divide by intensity.
Point recentering sets the point on the average position of the background point in the searched cell.
Overlap defines that the cell is not to be constrained by the grid cell width which would negate cell overlapping.
Larger cell sizes allow to select true background points avoiding features like stars or nebulosities.
Smaller grid sizes provides a denser grid more capable of correctly reproducing backgrounds with large variability sometimes requering manual avoidance of non-background features.
A divide by background intensity extracted with a denser grid can correct incorrect flatness normally corrected by flats but need careful considering and should be attempted before subtracting a background normally without point overlapping.
With two manual points (click to set) a gradient can be defined and extracted directly.
The softness controls the amount of blurring applied to the extracted background.
Multiple runs of automatic grid definition and/or manual defined points can be added before extracting the background image.
After extracting an image the definition can be edited allowing for the partial manual removal of defined points.
Points can be removed clicking or dragging the mouse through the picture using the shift, alt and ctrl keys to enlarge the affected area.
Restart clears all point definitions. Default resets all controls to their default values.
More than one background removal could be executed on an image to reach the desired background removal target.
When the extracted background is used to divide the image or to be subtracted from it a cold pixel removal is done to the resulting image.

White Balance (Image and Stars B-V)

go to top

A white balance can be made in relation either to a automatically extracted background or a selected part of the image.
The information from the plate solving can be used to find the stars in the image in a catalog and compare their colors from B-V data with the colors present in the image in order to balance the stars image colors.

Local Contrast Enhancement (LCE)

go to top

LCE is an operation that allows the enhancement of the local contract without changing the global contrast of the current image with a preview function where various parameters can be adjusted: the channels affected can be selected between luma (default), chroma or all; the radius (sigma) can be specified between 30 and 100; a threshold can be set that limits the effect produced over a luminance level with a smooth curve transition; an alpha can be set that defines how much of the effect produced will be merged bach into the current image.

Subtractive Chromatic Noise Reduction (SCNR)

go to top

This operation can remove a color cast or a color noise from an image with a preview function. Normally is used to remove green noise from the images. The color to be removed can be choosen as well as the algorythms used (five variants) and a setting to keep the value of L unaltered. An alpha value can be set that defines how much of the effect produced will be merged bach into the current image.

Contrast Limited Adaptive Histogram Equalization (CLAHE)

go to top

CLAHE is a type of adaptive histogram equalization operation that limits the amplification of noise allows the enhancement of the local contract and definition of edges with a preview function where various parameters can be adjusted: the radius (size of cell) can be specified between 8 and 64; a limit can be set that limits the histogram reducing noise amplification; an alpha can be set that defines how much of the effect produced will be merged bach into the current image.

Local Normalization

go to top

Local Normalization performs histogram normalization locally: lnimage=(image-mean(image))/sqrt(mean(sqr(image-mean(image)))).

Power of Inverted Pixels (PIP)

go to top

PIP is a way to do shadow features enhancement without increasing noise and saturating highlights on the current image with a preview function where various parameters can be adjusted: the channels affected can be selected between luma (default), chroma or all; the radius (sigma) can be specified between 30 and 100; a threshold can be set that limits the effect produced over a luminance level with a smooth curve transition; an alpha can be set that defines how much of the effect produced will be merged bach into the current image.

SMI Enhacement (SMI)

go to top

SMI Enhacement is a form of contrast enhancement developed by Jerry Lodriguss.

Channel and Space Operations

go to top

Grayscale extracts the luminance value.
Channels can be extracted as L or the channel color. Lightness extracts the L value.
Spaces convert the image between RGB, HSL and L*a*b* color spaces.
Grayscale inverts the RGB values.

Debayering and Bayering

go to top

Debayering interpolates color information for each pixel from a bayer cell of four pixels. Bayering converts each color pixel into a bayer cell of four pixels.

Synthetic Channels

go to top

Synthetic interpolated channel uses color information for each pixel from a bayer cell of four pixels substituting selected channels for others.

Hot Pixel Removal

go to top

Experimental simple operations to reduce hot pixels.

Cold Pixel Removal

go to top

Pixels with color components set to zero (and all color components < 1/8) are substituted by an average of surrounding pixels wich have all color components greater than zero.

Plate Solving Settings

go to top

There are two main ways to plate solve, using locally ANSVR to process images through direct execution or using Astrometry either nova.astrometry.net or a local mirror (can be ANSVR) through network submission of images or star lists.
Download and Install ANSVR.
Execute ANSVR Index Manager to manage the downloaded index files necessary to plate solve different image resolutions (arcsec/pixel).

Set the nova.astrometry.net API key to be used when submitting images or star lists to this service. You need to login with your own user on this service to retrieve your API key. Can be found on "Dashboard/My Profile" or "API" pages.
Set a local astrometry mirror site to be used instead of nova.astrometry.net. If you have ANSVR installed this could be "http://127.0.0.1:8080" when started.
When using astrometry wou can select to use image submission or star list submission. The star list is generated internally by image16 with no more that 100 star positions.
Select plot (.png with grid and objects overlay) saving and/or WCS file saving.

Plate Solving with ANSVR or Astrometry

go to top

It is possible to the solve without adding any information (blind solve) but each correct additional information about the image will shorten the plate solve time.
Find an object in the picture to fill-in the coordinates where to center the search and optionally specify a radius for the search.
Searchable objects include parts of Abell (A), Barnard (B), Caldwell C), Bright Star (H), IC (I), LDN (L), Messier (M), NGC (N), Sharpless (S) and UGC (U) catalogues (23076 objects) that can be searched using only the first letter and the number.
Fill in the focal length and camera pixel size or the image resolution in arcsec/pixel.
If successful, the plate solving will determinate the pixel scale, orientation and center point tangencial RA/Dec.
Failure to plate solve can indicate among other things, wrong parameters (try blind plate solve) or if using ANSVR locally the lack of necessary indexes for the image resolution (try ANSVR Index Manager)
The computed information is written to a “.solved.txt” file with the solved image path and name.
An image plot can be generated to a “-plot.png” file with the solved image path and name when solving or afterwards.

The information from the plate solving can be used to displace/resize/rotate images to combine/merge them or to find the stars in the image in a catalog and compare their colors from B-V data with the colors present in the image in order to balance the stars image colors.

Load WCS

go to top

A WCS file can be generated when plate solving an image and later loaded in order to provide plate solving information for the current image. Image dimensions must match

Objects, Plot and Solved Info

go to top

List the deep space object and stars found on the image and open the .png plot or the .txt plate solve information files.

Plot Generation

go to top

A .png overlay file can be generated from the plate solving information, object/star positions and OpenNGC based outlines.

Stars and Plot Drawing

go to top

Select the overlay drawing of the catalog stars found in the image after plate solving and/or the plot image resulting from the plate solving.

Starnet++ Download and Install

go to top

Download Starnet++ CLI executables.

Select Starnet++ CLI Executable

go to top

Select Starnet++ CLI executable for starless image generating.

Execute Starnet++

go to top

Executes Starnet++ for starless image generating (subtracting this starless image from the image will produce a star only image) for stars and nebulosity separated processing.

G'MIC Download and Install

go to top

Download and install G'MIC CLI executables.

Select G'MIC Executable

go to top

Select G'MIC CLI executable for G'MIC function invoking.

G'MIC Deblurring and Denoising

go to top

Several G'MIC deblurring and denoising functions prepepared for invoking.

G'MIC Execute

go to top

General G'MIC function invoking.
Several function can be pipelined, input and output functions are always prepended and appended.

ASCOM Camera Choose, Setup and Capture

go to top

Experimental ASCOM Camera image capturing.

Macros Load and Save

go to top

Load and save macros from/to files (.i16m).

Macros Record and Play

go to top

Record and play macros.

Draw on Selection

go to top

Use selection to define a box where shapes or text will be drawed/written.

Darks, Flats ans DarkFlats

go to top

Darks, Flats ans DarkFlats operations for EAA application.

Electronically Assisted Astronomy (EAA)

go to top

A experimental EAA function allowing to predefine operations (on the initial image) to apply to each image found that is to be stacked. Can wait for captured images or process images already existent on a folder.

Multi Window

go to top

Multi instances of Image16 centrally launched comunicate and can be accessed here.

Resources

go to top

Help, YouTube, Facebook, WWW, About.

Macros

Macros can be recorded and saved or programmed with a text editor and then loaded and executed in order to repeat or script processing. Combining the command line format of load an image and loading/running macros from files or passing a macro sequence as a parameter, image16 can be scripted and then used to batch process images. Macro sequences are inline macros where a set of macro lines are separated by \n and the parameters inside steps are separated by \t.

Macro files (*.i16m) file format version 1

First line: Designation\tVersion
Next lines: MainBitmap\tAuxBitmap\tFunction\tParameters

MainBitmap/AuxBitmap encoding
ibNone none
ibMain main
ibBuffer buffer
ibMask mask
ibTemp temp

Parameters are separated by |

Functions
 ifAdd bitmap1 bitmap2 alpha - adds bitmap2 to bitmap1 (with alpha)
 ifApplyBlur bitmap radius threshold protection chroma luma alpha - applies chroma/luma and bilateral (protected), thresholded blurring to bitmap (with alpha)
 ifApplyCLAHE bitmap cell maxa alpha - applies CLAHE to bitmap (with alpha)
 ifApplyCurves bitmap colorspace(0=RGB,1=HSL,2=Lab) channel1 channel2 channel3 curve1 curve2 curve3 alpha - applies curves (with alpha)
 ifApplyDoG bitmap sigma order chroma luma alpha - applies chroma/luma DoG to bitmap (with alpha)
 ifApplyFlatImage bitmap flatimage flatinverted darkflatimage darkflatinverted - applies flat/darkflat to bitmap
 ifApplyGammaHSL bitmap H S L alpha - applies gamma adjustment to RGB channels (with alpha)
 ifApplyGammaL bitmap gamma black sinbwprotection alpha - applies gamma adjustment to L channel (with alpha)
 ifApplyGammaRGB bitmap R G B alpha - applies level adjustment to RGB channels (with alpha)
 ifApplyLN bitmap sigma1 sigma2 alpha - applies local normalization (with alpha)
 ifApplyPIP bitmap radius threshold chroma luma alpha - applies chroma/luma thresholded PIP to bitmap (with alpha)
 ifApplyRank bitmap ranktype(0=Min,1=Max,2=Open,3=Close,4=Mean,5=Median,6=Variance,7=StdDev,8=Mode,9=GeometricMean,10=RootMeanSquare) radius alpha - applies rank operation to bitmap (with alpha)
 ifApplyRankShape bitmap ranktype(0=Min,1=Max,2=Open,3=Close,4=Mean,5=Median,6=Variance,7=StdDev,8=Mode,9=GeometricMean,10=RootMeanSquare) radius shape(0=square, 1=roundedsquare, 2=cross, 3=star, 4=box) alpha - applies rank operation to bitmap (with alpha)
 ifApplySCNR bitmap scnrtype(0=MaxMask,1=AddMask,2=AvgMaxNeutral) color(0=R, 1=G, 2=B) maxavgmin(-1=Min<->0=Avg<->1=Max) keepl alpha - applies SCNR subtractive color noise reduction filter to bitmap (with alpha)
 ifApplySMI bitmap radius threshold chroma luma alpha - applies chroma/luma thresholded SMI Enhancement to bitmap (with alpha)
 ifApplyStarsBVColorBalance bitmap hueorrgb alpha - applies color correction comparing found stars B-V information (after platesolving) with the color on image (with alpha)
 ifApplyTones bitmap curve alpha - applies hue adjusting curve (with alpha)
 ifApplyUnsharpMask bitmap convolution(0=gaussian,1=laplacian,2=laplacianofgaussian) radius threshold chroma luma alpha - applies chroma/luma unsharpmask thresholded sharpening to bitmap (with alpha)
 ifAssign bitmap1 bitmap2 - assigns bitmap2 to bitmap1
 ifAutoASinHStretch bitmap - auto ASinH stretchs the bitmap
 ifAutoBGExtraction sourcebitmap destbitmap width point level grid cell margin tolerance - automatically extracts the background
 ifAutoBGHistogramRGB bitmap - automatically tries do adjust RGB histograms individually to match background profiles in order to reach background neutrality
 ifAutoBGOperation bitmap oper(0=Subtract, 1=Divide, 2=DivideByInt, 3=SubMult) width point level grid cell margin tolerance - automatically extracts the background and performs the selected operation on the image
 ifAutoCrop bitmap - automatically crops near black margins
 ifAutoMedianLevels bitmap target mediandispersion alpha - applies automatic Median level correction
 ifAutoMedianLevelsRGB bitmap target mediandispersion alpha - applies automatic independent RGB Median level correction
 ifAutoStarExtract bitmap radius alpha - star/nebulosity separation tool that tries to extract stars up to the selected radius
 ifBayeringCFABilinear bitmap cfatype(0=BGGR, 1=GRBG, 2=RGGB, 3=GBRG, 4=RGBG, 5=BGRG, 6=GRGB, 7=GBGR) - applies bilinear bayering to the image with the selected CFA (doubles the image size)
 ifBlindPlateSolve bitmap imagepath, resolution, reshi, reslo, ra, dec, radius - plate solves a image bitmap/filename saving the data acquired in filename.solved.txt and filename-plot.png files
 ifChannelAsColor bitmap channel(0=R, 1=G, 2=B) - extracts only the selected channel to the correspondent color channel
 ifChannelAsGray bitmap channel(0=R, 1=G, 2=B, 3=H, 4=S, 5=L, 11=R+G, 12=R+B, 13=G+B) - extracts only the selected channel to all color channel
 ifCIELabToRGB bitmap - convert an image from CIELab color space to RGB
 ifClose - close the window
 ifConvolve bitmap kernel divisor - convolves bitmap with kernel and divides all pixel values by divisor
 ifCrop bitmap left top right bottom - crops an image to the rectangle coordinates
 ifCropCentered bitmap left top right bottom - center crops an image to the width and height of the rectangle coordinates
 ifDebayeringCFABilinear bitmap cfatype(0=BGGR, 1=GRBG, 2=RGGB, 3=GBRG, 4=RGBG, 5=BGRG, 6=GRGB, 7=GBGR) - applies bilinear debayering to the image with the selected CFA
 ifDistance bitmap1 bitmap2 alpha - sets bitmap1 equal to the distance between the two bitmaps (with alpha)
 ifDistort bitmap p1 p2 p3 p4 stretchop(0=default, 1=nearest, 2=linear, 3=fastcosine, 4=cosine, 5=cubic, 6=kcosine, 7=bspline, 8=mitchell, 9=catmullrom, 10=lanczos2, 11=lanczos3, 12=lanczos4) - pincushion/barrel distortion of image with polar coordinates polynomial r=r*(p1+p2*r^3+p3*r^5+p4*r^7)
 ifDivide bitmap1 bitmap2 alpha - sets bitmap1 equal to the division of bitmap1 by bitmap2 (with alpha)
 ifDivideInt bitmap1 bitmap2 alpha - sets bitmap1 equal to the division of bitmap1 by bitmap2 intensity (with alpha)
 ifEqualizeHistCDFL bitmap alpha - equalizes the image histogram (Global Histogram Equalization)
 ifExchange bitmap1 bitmap2 - exchanges bitmaps
 ifGetStarnetStarless bitmap filename - gets filename.starless.tif
 ifGMICCmd bitmap commands - executes G'MIC commands
 ifGray bitmap alpha - converts to luminance (Y) (with alpha)
 ifHalveBitmap bitmap - combines each 4 pixels cell into one halving the bitmap size
 ifHSLToRGB bitmap - convert an image from HSL color space to RGB
 ifInvert bitmap - inverts bitmap
 ifLightness bitmap alpha - converts to lightness (L) (with alpha)
 ifMax bitmap1 bitmap2 alpha - sets bitmap1 equal to the maximum of bitmap1 and bitmap2 (with alpha)
 ifMin bitmap1 bitmap2 alpha - sets bitmap1 equal to the minimum of bitmap1 and bitmap2 (with alpha)
 ifMirror bitmap - mirrors bitmap
 ifModulateSByL: ApplyBitmapModulateSByL48(bm, TSByLModType(GetIntParm(parms, 0)), GetFloatParm(parms, 1, 0.5), GetFloatParm(parms, 2, 1));
 ifMosaicRotateStretch bitmap - rotates and stretches the plate solved image so that the orientstion is 180 and the resolution is rounded to the nearest 0.1 arcsec/pixel
 ifMultiply bitmap1 bitmap2 alpha - sets bitmap1 equal to the multiplication of bitmap1 by bitmap2 (with alpha)
 ifMultiplyInt bitmap1 bitmap2 alpha - sets bitmap1 equal to the multiplication of bitmap1 by bitmap2 intensity (with alpha)
 ifNegative bitmap - inverts bitmap pixel values
 ifPopUndo - undo
 ifPower bitmap1 bitmap2 alpha - sets bitmap1 equal to the power of bitmap1 by bitmap2 (with alpha)
 ifPushUndo - save undo
 ifRescaleL bitmap alpha - rescales bitmal L (with alpha)
 ifResize bitmap width height - resizes the bitmap
 ifRGBPixelAlign bitmap - RGB aligns the bitmap
 ifRGBShiftScaleRotate bitmap xdR, ydR, xdB, ydB, angR, angB, scaR, scaB, xCent, yCent - shifts scales and rotates a bitmap RGB channels
 ifRGBSubPixelAlign bitmap - RGB sub-pixel aligns the bitmap
 ifRGBSubPixelAlignMax bitmap radius - RGB sub-pixel aligns the bitmap to the area surrounding the maximum intensity point
 ifRGBToCIELab bitmap - convert an image from RGB color space to CIELab
 ifRGBToHSL bitmap - convert an image from RGB color space to HSL
 ifRGBToYCbCr bitmap - convert an image from RGB color space to YCbCr
 ifRotate bitmap angle - rotates the bitmap
 ifRotateChannels bitmap - rotates bitmap channels R->G->B->R
 ifRotateCrop bitmap angle - rotates and crops the bitmap
 ifRotateQ bitmap - rotates bitmap 90º clockwise
 ifSave - save/saveas
 ifSpecifyHistogramCDFL bitmap histcurve alpha - sets the image histogram
 ifStretch bitmap angle p1 p2 p3 p4 stretchop(0=default, 1=nearest, 2=linear, 3=fastcosine, 4=cosine, 5=cubic, 6=kcosine, 7=bspline, 8=mitchell, 9=catmullrom, 10=lanczos2, 11=lanczos3, 12=lanczos4) - stretches/distort the image with at an angle rectangular coordinates polynomial x=x*(p1+p2*x^2+p3*x^4+p4*x^6)
 ifStretchAExp bitmap black value alpha - applies black clipping and Exponential stretching to bitmap (with alpha)
 ifStretchALog bitmap black value alpha - applies black clipping and Logarithmic stretching to bitmap (with alpha)
 ifStretchASinH bitmap black value alpha - applies black clipping and ASinH stretching to bitmap (with alpha)
 ifStretchASqr bitmap black value alpha - applies black clipping and Square stretching to bitmap (with alpha)
 ifStretchASqrt bitmap black value alpha - applies black clipping and Square Root stretching to bitmap (with alpha)
 ifStretchHistLvls bitmap blackin middlein whitein blackout whiteout rgbbits(1=B, 2=G, 4=R, 8=L) alpha - stretchs histogram curve channels (with alpha)
 ifStretchHistogramLevels equals ifStretchHistLvls (without alpha)
 ifSubtract bitmap1 bitmap2 alpha - sets bitmap1 equal to the subtraction of bitmap1 by bitmap2 (with alpha)
 ifSubtractDarkImage bitmap filename invert - subracts dark image from image with optional inversion of the dark image
 ifSubtractMultiply bitmap1 bitmap2 alpha - sets bitmap1 equal to the subtraction/multiplication of bitmap1 by bitmap2 [b1=((b1-b2)*(max/(max-b2)))] (with alpha)
 ifWaveletDecompose bitmap alphas chroma luma - wavelet decompose and recompose image chroma/luma according to alphas
 ifWaveletDenoise bitmap thresholds alphas chroma luma - wavelet decompose denoise according to thresholds and recompose image chroma/luma according to alphas
 ifWaveletDenoiseDecompose=ifWaveletDenoise(0,1,3,4)+ifWaveletDecompose(2,3,4)
 ifWaveletExtractBackground bitmap - wavelet decompose and retrieve background scale
 ifWaveletRemoveBackground bitmap - wavelet decompose and retrieve background scale and divide image buy extracted background
 ifWhiteBalanceBG bitmap alpha curve(0=linear, 1=gamma) width point level grid cell margin tolerance - automatically extracts the background then uses the background to color balance the image
 ifYCbCrToRGB bitmap - convert an image from YCbCr color space to RGB


Linux Wine for Image16 execution on Linux installation/configuration examples

note: these procedure were minimally tested with success, handle with care, no warranty implied

WINE instalation on Linux example

----------
--- enable support for 32-bit applications
sudo dpkg --add-architecture i386

--- check wget command line tool is installed
sudo apt update
sudo apt install software-properties-common wget curl

----------
--- import repository GPG key
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key

----------
--- on Linux Mint 21 or Ubuntu 22.04 LTS

sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources

--- on Ubuntu 22.10

sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/kinetic/winehq-kinetic.sources

----------

sudo apt update
sudo apt install --install-recommends winehq-stable

----------
--- version check
wine --version

----------
--- wine configuration
winecfg

----------
--- prompt gecko install
wine explorer

----------
--- configure gnome timeout if necessary on ubuntu 22
gsettings set org.gnome.mutter check-alive-timeout 180000


ANSVR installation on Linux as local Astrometry.net server installation/configuration examples

note: these procedure were minimally tested with success, handle with care, no warranty implied

ANSVR (https://adgsoftware.com/ansvr/) on Linux installation example

install ansvr under wine (not tested) or

------------------- install astrometry.net

apt install astrometry.net

--- check
/usr/bin/solve-field --version

------------------- create ansvr base folder

sudo mkdir /opt/ansvr
sudo chmod 777 /opt/ansvr

--- extract folder \cygwin_ansvr\opt\ansvr to /opt/ansvr from ansvr-setup-0.22.exe using 7zip (download from https://adgsoftware.com/ansvr/)

cd /opt/ansvr

------------------- use ansvr indices downloader

---
--- astrometry indices download
---
--- 4219 x1 # 23.3 to 33.3 deg (1400 to 2000 arcmin)
--- 4218 x1 # 16.7 to 23.3 deg (1000 to 1400 arcmin)
--- 4217 x1 # 11.3 to 16.7 deg (680 to 1000 arcmin)
--- 4216 x1, # 8 to 11.3 deg (480 to 680 arcmin)
--- 4215 x1, # 5.67 to 8 deg (340 to 480 arcmin)
--- 4214 x1, # 4 to 5.67 deg (240 to 340 arcmin)
--- 4213 x1, # 2.83 to 4 deg (170 to 240 arcmin)
--- 4212 x1, # 2 to 2.83 deg (120 to 170 arcmin)
--- 4211 x1, # 1.42 to 2 deg (85 to 120 arcmin)
--- 4210 x1, # 1 to 1.42 deg (60 to 85 arcmin)
--- 4209 x1, # 0.7 to 1 deg (42 to 60 arcmin)
--- 4208 x1, # 0.5 to 0.7 deg (30 to 42 arcmin)
--- 4207 x12, # 22 to 30 arcmin
--- 4206 x12, # 16 to 22 arcmin
--- 4205 x12, # 11 to 16 arcmin
--- 4204 x48, # 8 to 11 arcmin
--- 4203 x48, # 5.6 to 8 arcmin
--- 4202 x48, # 4 to 5.6 arcmin
--- 4201 x48, # 2.8 to 4 arcmin
--- 4200 x48, # 2 to 2.8 arcmin
---
--- 4205 to 4219 # 11 arcmin to 2000 arcmin => 1.3GB
sudo ./download_indexes 4205 4219

--- check
ls -lais /usr/share/astrometry/data

------------------- edit astrometry.net configuration file in order to point to the folder populated by ansvr utility

--- edit /etc/astrometry.cfg and point indices path /usr/share/astrometry/data filled by ansvr download_indexes
sudo nano /etc/astrometry.cfg

# In which directories should we search for indices?
add_path /usr/share/astrometry/data

------------------- create ansvr upload/temporary/logs folder

sudo mkdir /var/tmp/platesolve
sudo chmod 777 /var/tmp/platesolve

------------------- install perl json module if necessary

apt install libjson-perl

------------------- run ansvr local astrometry.net server

./ansvr

--- check for process listening on port 8080
sudo lsof -i -P -n | grep LISTEN

--- check configuration page on browser
http://localhost:8080/api/config

--- apis enabled

--- http://localhost:8080/api/login
--- http://localhost:8080/api/upload
--- http://localhost:8080/api/submissions
--- http://localhost:8080/api/cancel
--- http://localhost:8080/api/jobs
--- http://localhost:8080/wcs_file

------------------- stop ansvr local astrometry.net server

./stop_ansvr


ANSVR slowness due to CygWin slowness (when connected to network) workaround

note: these procedure were minimally tested with success, handle with care, no warranty implied

## start %localappdata%\Local\cygwin_ansvr\Cygwin.bat

$ time for i in {1..10} ; do bash -c "echo Hello" ; done
Hello
...
Hello

real 0m2.766s
user 0m0.046s
sys 0m0.321s

$ mkpasswd -c > /etc/passwd

$ mkgroup -c > /etc/group

$ vi /etc/nsswitch.conf

## change lines ##
passwd: files # db
group: files # db

$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
...
passwd: files # db
group: files # db
...

## restart %localappdata%\Local\cygwin_ansvr\Cygwin.bat


$ time for i in {1..10} ; do bash -c "echo Hello" ; done
Hello
...
Hello

real 0m0.664s
user 0m0.153s
sys 0m0.200s


WINE on macOS - gcenx wine-crossover

note: these procedure were minimally tested with success, handle with care, no warranty implied


## gcenx wine-crossover
## https://github.com/Gcenx/homebrew-wine

brew install --cask --no-quarantine gcenx/wine/wine-crossover

## check: https://www.sysnettechsolutions.com/en/install-wine-macos/


Starnet++ CLI on macOS

note: these procedure were minimally tested with success, handle with care, no warranty implied


## download Command Line Tool (CLI) from https://www.starnetastro.com/download/

## goto to starnet++ folder to clear quarantine ...
sudo chmod +x starnet++
sudo xattr -c *sh *so *++

## or download experimental from https://www.starnetastro.com/experimental/


astrometry.net on macOS

note: these procedure were minimally tested with success, handle with care, no warranty implied


brew install astrometry-net

cd /usr/local/Cellar/astrometry/0.93

mkdir data

cd data

curl -O http://broiler.astrometry.net/~dstn/4200/index-42[08-19].fits
curl -O http://broiler.astrometry.net/~dstn/4200/index-4207-[00-11].fits



G'MIC on Linux

note: these procedure were minimally tested with success, handle with care, no warranty implied


## for Ubuntu/Mint download G'MIC for Ubuntu version from https://gmic.eu/download.html

sudo apt install '/home/%USER%/Downloads/gmic_3.2.1_ubuntu22-04_jammy_amd64.deb'