import streamlit as st import cv2 import numpy as np from PIL import Image st.title('Image to Sketch') file = st.file_uploader('Upload an image', type=['jpg', 'jpeg', 'png']) if file: img = Image.open(file).convert('RGB') img2 = np.array(img) # 1. Görüntüyü OpenCV formatına (BGR) çevir img_bw = cv2.cvtColor(img2, cv2.COLOR_RGB2BGR) # FIX: BGR formatından Gray (Gri) formata çeviriyoruz gray = cv2.cvtColor(img_bw, cv2.COLOR_BGR2GRAY) # 2. Tersine çevir ve bulanıklaştır inverted = 255 - gray blurred = cv2.GaussianBlur(inverted, (21, 21), 0) # 3. Sketch efekti uygula def dodge(front, back): return cv2.divide(front, 255 - back, scale=256) sketch = dodge(blurred, gray) # 4. Ekranda Göster st.subheader('Original vs Sketch') col1, col2 = st.columns(2) with col1: st.image(img, caption='Original Image', use_column_width=True) with col2: # Sketch tek kanallı (gri) olduğu için çıktı daha nettir st.image(sketch, caption='Sketch Image', use_column_width=True)