Hi everyone,
I just released a new article about this wonderful process and I wanted to share here some details that I think that could be interesting for the community.
Link to the article:
https://aiastro.wordpress.com/2020/12/02/inside-starnet-wip/
The article explores 2 main subjects:
-An analysis of the standard procedure with the goal of better preparing our images to get the most from the process.

-A workflow proposal to refine the result on the starless image and its corresponding starmask. This cleaning workflow allows to apply a more agressive postprocessing.

During the investigation I developed some interesting techniques that I think that worth to mention:
Pixel Transference
As most of you probably know, starnet++ literally subtracts the stars from our image. That means that we can express the result as a methematical expression like the following:
L_NLT = L_sn0 + L_st0
where
L_NLT = Original image (Non Linear Transformed)
L_sn0 = Starless image
L_st0 = Starmask image (here I use the term starmask for simplification, but it would be more precise to call it "star-only image" )
Note that the notation is completely arbitrary.
This simple expression opens a wide range of advanced operations. The simpler one, that I assume that almost everyone uses, would be that we don't need to reapply starnet in starmask mode to produce our starmask. Intead of this, we simply subtract the starless image from the original one:

Note that Rescale result is unchecked. This is mandatory for our purposes.
This is nice an efficient, but there are many more things that we can do taking profit of that procedure. Let's see some examples that are fully covered on the article.
Details Recovery
Sometimes starnet considers bright DSO structures as stars, removing them totally, or partially. We normally may want to recover them, and this can be done by following the following workflow.

We use the starless image to produce the starmask, on which we must look for unwanted details, that we remove with clonestamp and then transfer this details to an improved starless image by subtracting the improved starmask from the original.
Absolute starmask
I think that everyone has noticed that on the starmask produced by starnet++, some of the stars are muted, that means, their cores brightness are not 1.000.

Left: Measurement of the brightness just aside of a star, before the application of starnet++ (K=0.846)
Right: Measurement of the brightness of the core of the star after starnet++ application (K=0.269)
This is not a bug or an issue, but a consecuence of the stated above: the pairing between starless and starmask is a simple subtraction. As a consecuence, the amount of lacking brightness on a core star is exactly the amount of brighness of the nebulosity behind it (on the starless image). I call this that starnet produces a relative starmask.
This fact makes very difficult, or directly impossible, to use the starmask as is, as a mask for star reduction, noise reduction and many other processed that involve the need to protect the stars.
To solve this particularity we can tranfer the remaining brightness from the starless image by using a bypass mask and simply add the starless image to the starmask. This operation equalizes all the star cores, without bloating them more than necessary.

Left: Relative starmask
Right: Absolute starmask
Image Slicing (not covered on the article)
The transferring technique described here has many possibilities and you can go as far as your imagination can go.
As an example, I was exploring the following procedure, that I didn't included in the article (I'm still exploring).
From our original image, apply starnet and pair, now we have:
L_NLT = Original
L_sn0 = Starless 0
L_st0 = Starmask 0
Now we recover details from the galaxy, as shown before, and redo the pairing:
L_NLT = Original
L_sn0 = Starless 1
L_st0 = Starmask 1
Next we fix the halos from the starless image (let's call it L_sn1) BUT we don't pair to L_NLT. Instead of this, we do:
L_sn0 - L_sn1
The result will be only the halos! Let's call it L_halo.
Now is important to note that:
L_NLT = L_st0 + L_sn1 + L_halo
Now we can open L_sn1 in Photoshop and clonestamp the galaxy. This will be L_sn1_noglx, and we can do:
L_sn1 - L_sn1_noglx
...and the result will be only the galaxy that can be called L_glx. We again can rewrite the general expression as:
L_NLT = L_st0 + L_sn1_noglx + L_glx + L_halo
...and so on. The only limitiation is the ability of the user to properly isolate each element, but what is extremely powerful and important to note is that the above expressions are not approximations or concepts. They are mathematically exact.
It is important to note that this assumes no intemediate processing, specially brightness changes.
Hope you found it interesting. As always, comments and questions are welcome.
Alberto.
I just released a new article about this wonderful process and I wanted to share here some details that I think that could be interesting for the community.
Link to the article:
https://aiastro.wordpress.com/2020/12/02/inside-starnet-wip/
The article explores 2 main subjects:
-An analysis of the standard procedure with the goal of better preparing our images to get the most from the process.

-A workflow proposal to refine the result on the starless image and its corresponding starmask. This cleaning workflow allows to apply a more agressive postprocessing.

During the investigation I developed some interesting techniques that I think that worth to mention:
Pixel Transference
As most of you probably know, starnet++ literally subtracts the stars from our image. That means that we can express the result as a methematical expression like the following:
L_NLT = L_sn0 + L_st0
where
L_NLT = Original image (Non Linear Transformed)
L_sn0 = Starless image
L_st0 = Starmask image (here I use the term starmask for simplification, but it would be more precise to call it "star-only image" )
Note that the notation is completely arbitrary.
This simple expression opens a wide range of advanced operations. The simpler one, that I assume that almost everyone uses, would be that we don't need to reapply starnet in starmask mode to produce our starmask. Intead of this, we simply subtract the starless image from the original one:

Note that Rescale result is unchecked. This is mandatory for our purposes.
This is nice an efficient, but there are many more things that we can do taking profit of that procedure. Let's see some examples that are fully covered on the article.
Details Recovery
Sometimes starnet considers bright DSO structures as stars, removing them totally, or partially. We normally may want to recover them, and this can be done by following the following workflow.

We use the starless image to produce the starmask, on which we must look for unwanted details, that we remove with clonestamp and then transfer this details to an improved starless image by subtracting the improved starmask from the original.
Absolute starmask
I think that everyone has noticed that on the starmask produced by starnet++, some of the stars are muted, that means, their cores brightness are not 1.000.

Left: Measurement of the brightness just aside of a star, before the application of starnet++ (K=0.846)
Right: Measurement of the brightness of the core of the star after starnet++ application (K=0.269)
This is not a bug or an issue, but a consecuence of the stated above: the pairing between starless and starmask is a simple subtraction. As a consecuence, the amount of lacking brightness on a core star is exactly the amount of brighness of the nebulosity behind it (on the starless image). I call this that starnet produces a relative starmask.
This fact makes very difficult, or directly impossible, to use the starmask as is, as a mask for star reduction, noise reduction and many other processed that involve the need to protect the stars.
To solve this particularity we can tranfer the remaining brightness from the starless image by using a bypass mask and simply add the starless image to the starmask. This operation equalizes all the star cores, without bloating them more than necessary.

Left: Relative starmask
Right: Absolute starmask
Image Slicing (not covered on the article)
The transferring technique described here has many possibilities and you can go as far as your imagination can go.
As an example, I was exploring the following procedure, that I didn't included in the article (I'm still exploring).
From our original image, apply starnet and pair, now we have:
L_NLT = Original
L_sn0 = Starless 0
L_st0 = Starmask 0
Now we recover details from the galaxy, as shown before, and redo the pairing:
L_NLT = Original
L_sn0 = Starless 1
L_st0 = Starmask 1
Next we fix the halos from the starless image (let's call it L_sn1) BUT we don't pair to L_NLT. Instead of this, we do:
L_sn0 - L_sn1
The result will be only the halos! Let's call it L_halo.
Now is important to note that:
L_NLT = L_st0 + L_sn1 + L_halo
Now we can open L_sn1 in Photoshop and clonestamp the galaxy. This will be L_sn1_noglx, and we can do:
L_sn1 - L_sn1_noglx
...and the result will be only the galaxy that can be called L_glx. We again can rewrite the general expression as:
L_NLT = L_st0 + L_sn1_noglx + L_glx + L_halo
...and so on. The only limitiation is the ability of the user to properly isolate each element, but what is extremely powerful and important to note is that the above expressions are not approximations or concepts. They are mathematically exact.
It is important to note that this assumes no intemediate processing, specially brightness changes.
Hope you found it interesting. As always, comments and questions are welcome.
Alberto.
