ImageManipulator is a piece of software to utilize partial functionality of popular ImageJ, which is used to scientific image analysis and processing. Reason to write ImageManipulator was to get familiar with popular image processing algorithm and getting known C# unsafe code with pointers to process large pictures in finite amount of time.
Only windows platform supported!
- Clone repository
- Navigate to cloned directory
- Execute
dotnet build --configuration Release --output ./Release
- Launch
ImageManipulator.Presentation.exe
inRelease
directory
- Image managing
- Opening an image
- Image changes history
- Saving image
- Edit multiple images
- Image processing
- Duplication
- Negation
- Contrast stretching
- Non-Linear contrast stretching
- Histogram equalization
- Arithmetic operations on image (Add, Subtract, Multiply, Divide, Amplitude, etc.)
- Bitwise operations on image (AND, OR, NOT, Shift, etc.)
- Image convolution
Examples:
- Apply threshold
- Canny edge detection
- See changes, histogram and revert to previous change
- Apply bitwise operations
- Apply arithmetic operations
- Negate image
ImageManipulator consist of few technologies:
- .NET8
- WPF - as a base for development window application
- AvaloniaUI - user control and look
- ReactiveUI - provide building blocks and reusable implementation for user controls
- CommunityToolkitMVVM - providing standard, self-containing types for implementation using MVVM pattern
- Microsoft DependencyInjection - provide IOC container for dependent implementations
- LiveCharts - histogram graphs
- Scrutor - scan for CQRS implementation
- Moq - testing purposes
- NUnit 3 - testing purposes