AI Sketch Converter - Convert Any Image to Sketch in 1 Click Using Python
Demo :
Click Video πππ
π Features
✅ AI-powered Sketch Converter
✅ OpenCV Image Processing
✅ No TensorFlow Required
✅ Save High-Quality Sketches
✅ Full Source Code Provided
Code :
import cv2
import numpy as np
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
# Global variable for storing the loaded image
global_image = None
def sketch_transform(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
inv = cv2.bitwise_not(gray)
blur = cv2.GaussianBlur(inv, (21, 21), 0)
sketch = cv2.divide(gray, 255 - blur, scale=256)
return sketch
def open_image():
global global_image
file_path = filedialog.askopenfilename(filetypes=[("Image Files", "*.jpg;*.png;*.jpeg")])
if file_path:
global_image = cv2.imread(file_path) # Store the image globally
sketch = sketch_transform(global_image)
# Convert sketch for Tkinter display
sketch_pil = Image.fromarray(sketch)
sketch_tk = ImageTk.PhotoImage(sketch_pil)
label_img.config(image=sketch_tk)
label_img.image = sketch_tk
def save_image():
global global_image
if global_image is None:
print("No image loaded!")
return
file_path = filedialog.asksaveasfilename(defaultextension=".png", filetypes=[("PNG files", "*.png"), ("JPEG files", "*.jpg")])
if file_path:
cv2.imwrite(file_path, cv2.cvtColor(sketch_transform(global_image), cv2.COLOR_GRAY2BGR))
# Create GUI
root = tk.Tk()
root.title("AI Sketch Converter - No TensorFlow!")
root.geometry("500x600")
root.configure(bg="#1e1e1e")
btn_open = tk.Button(root, text="Open Image", command=open_image, font=("Arial", 14), bg="#3498db", fg="white")
btn_open.pack(pady=20)
label_img = tk.Label(root, bg="#1e1e1e")
label_img.pack()
btn_save = tk.Button(root, text="Save Sketch", command=save_image, font=("Arial", 14), bg="#2ecc71", fg="white")
btn_save.pack(pady=20)
root.mainloop()
Comments
Post a Comment