File size: 784 Bytes
a806309
3266325
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import streamlit as st
import cv2
import numpy as np
from PIL import Image

st.title('Image to Sketch')
file=st.file_uploader('upload a portrait Image', type=['jpg','png','jpeg'])
if file:
    img=Image.open(file).convert('RGB')
    img2=np.array(img)
    img_bw=cv2.cvtColor(img2,cv2.COLOR_RGB2BGR)
    gray=cv2.cvtColor(img_bw,cv2.COLOR_RGB2GRAY)
    inverted=255-gray
    blurred=cv2.GaussianBlur(inverted,(21,21),0)
    
    def dodge(front,back):
        return cv2.divide(front, 255-back, scale=255)
        
    sketch=dodge(gray,blurred)
    
    st.subheader('Original vs Sketch')
    col1,col2=st.columns(2)
    with col1:
        st.image(img, caption='Original', use_container_width=True)
    with col2:
        st.image(sketch, caption='Sketch', use_container_width=True)