Microkernel Demo for WPF, Winforms and Console processes
- Thesis
- Solutions
- General architecture of the transient process
- Navigation by using a DI container
- Closures propagation by using a pipeline and event aggregator
- Linking a transient presenter and a view
- Mocks registration via a DI container to test the internal infrastructure
- Reference a microkernel from a presentation to move a domain between processes
- Yielding a sequence to test a collection traverse order
- Benchmarks
- NuGet
The application was originally developed as an R&D work.
The original purpose was to research the possible advantages of grayscale images contrast optimization using a normal distribution regarding a uniform distribution. Two parameters such as the expectation and std allow to control relative luminance and contrast, respectively.
Fig. 1 - The main window and control panels.
Initially, for experimental purposes was chosen a group of underexposed images.
Fig. 2 - The original underexposed image.
After an optimization with a uniform distribution, there is a redundancy in bright areas of relative luminance. However, using a normal distribution it's possible to minimize this effect, achieving better details’ distinctiveness.
Fig. 3 - The histogram transformation by a uniform distribution.
Fig. 4 - The histogram transformation by a normal distribution where µ = 90 and σ = 60.
To justify which image is better, regarding its contrast, one may use the definition of conditional variance:
where [z1, z2] is an interval of relative luminance.
Splitting the interval [0, 255] to 16 subintervals we may now use the definition above. Since we define contrast as statistical scattering, the definition of conditional variance may show the level of contrast on each specified interval.
Fig. 5 - Using the definition of conditional variance on 16 intervals of relative luminance.
Thus, one may conclude that a normal distribution may represent better result regarding a uniform distribution on a group of underexposed images.
Fig. 6 - The process architecture.
Fig. 7 - The process code metrics.
ImageProcessing.Microkernel.DIAdapter