Alternating solver for intensity correction #166
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the spirit of the alternating solver for alignment (see #160), I added a similar solver for intensity correction. It works in exactly the same way as the analogue for alignment, but two changes to the existing code were necessary:
Render.render
rather thanVisualizeTools.getUntransformedProcessorWithMasks
to preserve my notion of "untransformed" (meaning also no filters).LinearIntensityMap8BitFilter
can now absorb a second filter to emulate chaining of linear functions.Results
I tested the implementation on one layer of wafer_53 with a 3x3 XY-block layout; see pictures below.
While I can still see some tile boundaries after one run, the results after two runs look qualitatively very close to the baseline (intensity correction without blocks).