A Plug And Play Solution For Working With Images And Image Processing
Explore the docs »
Created Using SIPL
·
View Demo
·
Report Bug
·
Request Feature
There are more then a few great Image Handlers and Image Processing librarys available on GitHub, however, I didn't find one that really suit my needs, the need to simply drag a file into my project folder and start coding ,a library with straightforward method names so it can be used without searching to much the web or reading a whole insturction manual so I created this simple plug and play library. I want to create an Image Handaling,Processing and Analysis library so efficient and simple that it'll be the last one you ever need.
Here's why SIPL:
- Your time should be focused on algorithms,developing something amazing,not learning shortened method names of a library
- You shouldn't install a huge amount of external dependencies to your project - SIPL has no external dependencies !
- You should be able to read any code written using SIPL and clrealy understand whats going on from the method names
- You have an understanding on how to use SIPL on one language ? , you know how to use SIPL on all supported languages !
Of course, for the time being the library is still under development so still it will not serve all projects since your needs may be different then what the library currently supports for you language or even at all . functions and features will be added in the near future. You may also suggest changes by forking this repo and creating a pull request or opening an issue.
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
-
C++ Version-
Version 1.0 SIPL can be used just by adding to your project all the header files and CPP files located in the SIPL Core folder. including only the core of the library will allow you to use all core features and methods without the added functionality of the subclasses. the main core provides all needed tools for image processing, analysis, and handling. SIPL-C++ works best with .jpg format, the infrastructure used to load image binary data was recently updated for better performance as for now, SIPL uses the stb load/write lib to load image data to memory and to write processed data back to drive.
Version 2.0 Faster,Memory Efficient,And Much More User Friendly , SIPL 2.0 Released(30/5/2020) ! keep in mind instructions for version 1.0 slightly different becuase of updates and upgrades that were made in the core structure. The SIPL Pixel Matrix Logic is still the same only method names and calls changed.
To Use Version 2.0 all you need is to drag and drop the SIPL_CPP header files from Here to your project folder ,and include ONLY Cpp_SIPL.h, and you are ready to code!
the infrastructure used to load image binary data still uses the stb load/write lib to load image data to memory and to write processed data back to drive.
visual studio users if getting security error while compiling
please add _CRT_SECURE_NO_WARNINGS to your preprocessor definitions setting
!Important! all sub-libraries and functionality relay on the Core files always include the core folder first!.
-
Java Version-
SIPL can be used by adding to your projects /src folder the "Image" java class file located under the Java folder. adding the the class file will allow you to use all core features and methods without the added functionality of the subclasses. the main core provides all needed tools for image processing, analysis, and handling
-
Python Version- SIPL can be used by adding to your projects folder the "SIPL_Python.py" file located under the Python folder. adding the the py file will allow you to import all core features and methods without the added functionality of the subclasses. the main core provides all needed tools for image processing, analysis, and handling
Detailed tutorials about how to work with SIPL can be found in the wiki tab of this repository
- Download The Corresponding Files From The Repository Folder Of Required Language
- Copy All Classes/Files Into Your Projects /src or /main Folder
- You Are Ready To Code!
- For more Detailed Instructions, please refer to the User Instructions
some features may be under development for some languages (java version has all the features stated at all time)
- Loading/Creating/Writing Images
- Cropping/Scaling
- Single Pixel Modification
- Spatial Rotation
- Image View (Using SIPL's Local GUI Window)
- Shape Drawing (Cirlce,Rectangle,Triangle) - Fill/No-Fill
- Line Drawing
- Text Drawing
- Thresholding
- Color Flooring
- Edge_Detection
- Kernel Convolution
- Image Convolution
- Feature_Matching
- Average Palette Detection
- Image Segmentation
- Image Paddings
- Dithering
- Circle Packing
- Channel Controlling
- Color Space Conversions
- Noise Addition/Creation
- Bit Plane Slicing
- Blob Farming
- Difference Measurement
- Connected Components Labeling
- Power/Log /Negative Transformations
- Fourier Transformation
- Localy View / Export Channel Histogram
- Histogram Equalization
- Histogram Correction (Linear,Power,Log)
- Addition
- Subtraction
- Multiplication
- Division
- Logic Operations (OR,AND,XOR,NOT,AND-NOT)
- Set Operations (Union,Complement,Intersection)
- Scatter Plot
- Bar Plot
- Stem Plot
- Line Plot
- Pie Plot
- Histogram
- Complex Number Handling
- Matrix Handaling
- Complex Matrix Operations
- Statistical Calculations
- Random Number/Color/Sequance Generation
- Linear Calculations (Distances/Interpolations)
- Frame Refreshing (For Game/ Video / Animation Creation)
- 3D Ploting And Interaction
- Image Viewing
Contributions are what make the open-source community such a powerful place to create new ideas, inspire, and make progress. Any contributions / ideas / requests you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/GreatIdea
) - Commit your changes (
git commit -m 'Add some HelpfulFeature'
) - Push to the Branch (
git push origin feature/GreatIdea
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Your Name - Thomas Konstantin - thomaskon90@gmail.com
Project Link: https://github.com/MuteJester/Simple_Image_Processing_Library