diff --git a/Toonify/README.md b/Toonify/README.md new file mode 100644 index 0000000..3a41786 --- /dev/null +++ b/Toonify/README.md @@ -0,0 +1,39 @@ +## HOW TO USE + +#### Using OpenCv ([link](./toonify-opencv.py)) + + +- To just view the image +```python +python3 toonify-opencv.py -i img_path +``` + + +- To view and download the image +```python +python3 toonify-opencv.py -i img_path -o download_path +``` + +#### Using Toonify-API(by DeepAI) + + +##### For local image ([link](./toonify-API-1.py)) + +```python +python3 toonify-API-1.py -i img_path -k api_key + +``` + +##### For URLS ([link](./toonify-API-2.py)) + +```python +python3 toonify-API-2.py -i img_path -k api_key + +``` + +> NOTE: The toonify image works well with .jpg format and might give some problem with other formats + + +For more details on toonify API: + +[toonify API doc](https://deepai.org/machine-learning-model/toonify) diff --git a/Toonify/toonify-API-1.py b/Toonify/toonify-API-1.py new file mode 100644 index 0000000..f686c3c --- /dev/null +++ b/Toonify/toonify-API-1.py @@ -0,0 +1,18 @@ +import argparse +import requests + +aq = argparse.ArgumentParser() +aq.add_argument('-i', '--input', required=True, help="input image path") + +aq.add_argument('-k', '--apikey', required=True, help="api-key") + +args = vars(aq.parse_args()) + +r = requests.post( + "https://api.deepai.org/api/toonify", + files={ + 'image': open(args['input'], 'rb'), + }, + headers={'api-key': args['apikey']} +) +print(r.json()['output_url']) \ No newline at end of file diff --git a/Toonify/toonify-API-2.py b/Toonify/toonify-API-2.py new file mode 100644 index 0000000..eec52f3 --- /dev/null +++ b/Toonify/toonify-API-2.py @@ -0,0 +1,18 @@ +import argparse +import requests + +aq = argparse.ArgumentParser() +aq.add_argument('-i', '--input', required=True, help="input image link") + +aq.add_argument('-k', '--apikey', required=True, help="api-key") + +args = vars(aq.parse_args()) + +r = requests.post( + "https://api.deepai.org/api/toonify", + files={ + 'image': args['input'], + }, + headers={'api-key': args['apikey']} +) +print(r.json()['output_url']) diff --git a/Toonify/toonify-opencv.py b/Toonify/toonify-opencv.py new file mode 100644 index 0000000..e75e129 --- /dev/null +++ b/Toonify/toonify-opencv.py @@ -0,0 +1,32 @@ +# importing libraries +import cv2 +import numpy as np +import argparse + +aq = argparse.ArgumentParser() + +aq.add_argument('-i', '--input', required=True, help="input image path") + +aq.add_argument('-o', '--output', help="path where you want to download the image") + +args = vars(aq.parse_args()) +# reading image +img = cv2.imread(args['input']) + +# Edges +gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) +gray = cv2.medianBlur(gray, 5) +edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, + cv2.THRESH_BINARY, 9, 9) + +# Cartoonization +color = cv2.bilateralFilter(img, 2, 250, 250) +cartoon = cv2.bitwise_or(color, color, mask=edges) + +if(args['output']): + cv2.imwrite(args['output'], cartoon) + + +cv2.imshow("Cartoon", cartoon) +cv2.waitKey(0) +cv2.destroyAllWindows() \ No newline at end of file