PixelArt is intended to be a web-app run on django that can allow you to perform some interesting effects on an image. The initial intent of this app was for it to be a tool for an Machine Learning script to pass direct instruction on coloring images mainly shown as coloring black and white images to colored. Since the libraries I've seen tends to perform poorly (generally) the idea was with object segmentation and object classification with the segmentation being pixel-precise instead of a square/rectangle denoting an object is inside this information of the object like a person would be passed to the image script and it would with the right information such as:
- breakdown of a person such as skin color tone, the subject's skin area estimated in pixel positions, other areas like hair and it's color and positions the app would color an image, return it and the classifier would check for the error rate and work on sending more precise instructions to the app since I've been able to get really decent results with it.
Coloring a black and white image
Click Image to be redirected to youtube installation playlist
Other Example with cars
Coloring different targets
You could also do an inverse effect of selecting some color code like the blue color of a car and if the image doesn't contain anything with the same color code grayscale every-part of the image that doesn't match this selection criteria basically making the car as the only colored object in the image. You could do this to yourself in an image, only the clothes you're wearing also by limiting the area to apply the color effect, in effect making the rest of the image grayscale/black & white.
These features based on the intended end result are broken into separate features, for now consisting of three:
- Color Editor: This edits an image based on the color hue, for example if you have a picture with a blue car and you want to turn it red, pink or any other color, (you'd could do this with photoshop if you know how). (Under Development)
- Color Picker: Intended to be a simple way to pick a color code from an image primarily for use with Color Editor (Under Development)
- Color Delete: A way to delete sections of an image to have a png with transparent background and a logo like effect. (Under Development)
- Merge Images: A way to take results from Color Delete or any other png/jpg and super-impose them behind another background image or background with a selected color code. Results may not be as impressive as using photoshop. (Under Development)
Note: This can be setup to run on the server but the websocket used may not be able handle huge traffic without a message queue like Redis. If you do plan on using this on a server with high traffic consider editing the repo to use django-channels or if the timing is right make a request to see if I can update the repo or make a branch that uses channels.
First install the dependencies using pip
pip install -r requirements
and then run django the normal way
python manage.py runserver
also from the same path on a different terminal/tab also run this command
which handles the socket requests. If your using virtualenv make sure to also run the path inside the virtualenv.
- Implement web-sockets to Color Editor to allow progress report on tasks happening in the background.
- Finish up on re-implementing core features of Color Editor, Picker and Delete from older repo.
- Implement Merge Images
- Implement cross-platform app using electron
- Push app to Windows Store
- Link up with ML to provide object segmentation on coloring rules to make an automated Coloring Script using Color Editor
- Link up with subject classification by ML object segmentation to delete background automatically with Color Delete
This is licenced under GNU Licence which means it's free to use, edit, distribute anyway you like, but where possible consider giving credit where it's due. In the source code or elsewhere.