This project is a comprehensive image processing application designed to perform a wide range of operations on digital images. It provides a user-friendly interface for opening, manipulating, and analyzing images using various techniques and algorithms. The application is built using C# and WPF, leveraging the MVVM (Model-View-ViewModel) design pattern for clean separation of concerns and maintainability.
- Load and Display Images:
- Load and display grayscale images.
- Load and display color images.
- Save Images: Save processed images to disk.
- Duplicate Images: Create duplicates of loaded images.
- Copy Image: Copy image to clipboard.
- Convert Color to Grayscale: Convert color images to grayscale.
- Convert RGB to Other Color Spaces:
- Convert RGB to HSV and separate into channels.
- Convert RGB to LAB and separate into channels.
- Channel Separation: Separate RGB images into individual channels.
- Basic Operations:
- Negation
- Grayscale level reduction (posterization)
- Histogram-based Operations:
- Histogram stretching.
- Histogram equalization.
- Filtering:
- Convolution:
- Using predefined masks.
- Using interactively provided masks.
- Median filtering
- Convolution:
- Unary and Binary Operations:
- Addition
- Subtraction
- Blending
- Logical operations: AND, OR, NOT, XOR
- Thresholding: Segment images using thresholding.
- Morphological Operations:
- Basic:
- Dilation
- Erosion
- Morphological opening
- Morphological closing
- Advanced:
- Skeletonization: Reduce the image to its skeletal form.
- Basic:
- Edge Detection: Edge detection using the Hough Transform.
- Image Pyramids: Image resizing using pyramids (upscaling and downscaling).
- Image Transformation:
- Rotate image by 90 degrees clockwise.
- Flip image by 180 degrees.
- Compression:
- RLE Compression
- Watershed: Perform segmentation with Watershed.
- Inpainting: Restore parts of images using inpainting.
- GrabCut: Extract foreground from selected part of image.
- Display Histogram:
- Graphically display the image histogram with real-time updates.
- Display histogram data in tabular representation.
- Profile Line: Generate and display a profile line of the image.
- Simple Analysis: Perform simple image analysis.
- Detailed Analysis: Perform detailed image analysis.
If you want to contribute to the project or explore the source code, follow these steps:
-
Clone the repository
git clone https://github.com/lukegor/JSharp.git
-
Navigate to the project directory
cd JSharp
-
Open the solution file in Visual Studio
- Open the
JSharp.sln
file located in the root directory of the project with Visual Studio.
- Open the
-
Run the application
- Press
F5
or selectDebug
>Start Debugging
.
- Press
If you just want to use the application without modifying the source code, follow these steps:
-
Download the latest release
- Go to the Releases page.
- Download the executable (
.exe
) and the program database file (.pdb
) for debugging.
-
Run the application
- Navigate to the folder where you downloaded the files.
- Double-click the executable file (
.exe
) to run the application.
Make sure you have the following installed:
-
For developers:
- Visual Studio (with the .NET desktop development workload)
- .NET SDK
-
For end users:
- No specific prerequisites (as the application package should include everything needed to run).
- Issues: Report any issues or feature requests on the Issues page.
This project is licensed under the Apache License 2.0. See the LICENSE file for more details.