shinestacker

Noisy pixel masking

First, the mask of noisy pixels has to be determined and stored in a PNG file using the action NoiseDetection:

job = StackJob("job", "E:/Focus stacking/My image directory/")
job.add_action(NoiseDetection("noise-map", input_path=["src"]))
job.run()

Usually, this job should be run first, enabling the option plot_histograms, playing with the plot range (plot_range option) in order to determine the optimal threshold values (channel_thresholds) to be applied in order to mask a reasonable number of pixels. Once the threshold values are determined, the main focus stacking job should be ran adding the sub-action MaskNoise before AlignFrames and BalanceFrames.

Arguments for the constructor of NoiseDetection are:

After the noisy pixel mask has been determined, noisy pixels are then masked adding the action MaskNoise to the Actions module:

job.add_action(Actions("mask", [MaskNoise(*options)]))

Or as preliminary stage to more actions:

job.add_action(Actions("align", [MaskNoise(),
                                 AlignFrames(),
                                 BalanceFrames(mask_size=0.9,
                                               intensity_interval={'min': 150, 'max':65385})]))

Note that if the number of pixels contained in the mask file (noise_mask option) is greater than 1000, the job is aborted.

Arguments for the constructor of NoiseDetection are: