Convert Image into Sketch - GeeksforGeeks

24 Feb, 2022
In Python, an image is just a two-dimensional array of integers. So one can do a couple of matrix manipulations using various python modules in order to get some very interesting effects. In order to convert the normal image to a sketch, we will change its original RGB values and assign its RGB values similar to grey, in this way a sketch of the input image will be generated. 
Import all required modules (numpy, imageio, scipy.ndimage, OpenCV)Take Image inputCheck RGB value of image and convert into according to RGB valuesShow finale image output using cv2.imwrite()
Import all required modules (numpy, imageio, scipy.ndimage, OpenCV)
Take Image input
Check RGB value of image and convert into according to RGB values
Show finale image output using cv2.imwrite()
Python3
# Python program to Convert Image into sketch  # import all the required modulesimport numpy as npimport imageioimport scipy.ndimageimport cv2  # take image input and assign variable to itimg = "4.jpeg"  # function to convert image into sketchdef rgb2gray(rgb):    # 2 dimensional array to convert image to sketch    return np.dot(rgb[..., :3], [0.2989, 0.5870, .1140])  def dodge(front, back):     # if image is greater than 255 (which is not possible) it will convert it to 255    final_sketch = front*255/(255-back)    final_sketch[final_sketch > 255] = 255    final_sketch[back == 255] = 255     # to convert any suitable existing column to categorical type we will use aspect function    # and uint8 is for 8-bit signed integer    return final_sketch.astype('uint8')  ss = imageio.imread(img)gray = rgb2gray(ss) i = 255-gray  # to convert into a blur imageblur = scipy.ndimage.filters.gaussian_filter(i, sigma=13)  # calling the functionr = dodge(blur, gray)  cv2.imwrite('4.png', r)
Import cv2:
--> pip install cv2
Then we will import cv2 inside our code, after that, we will use some of the following functions: 
1. imread()- This function will load the image i.e in the specified folder. 
2. cvtColor()- This function takes color as an argument and then changes the source image color into that color.
3. bitwise_not()- This function will help the image to keep the properties as same by providing the masking to it.
4. GaussianBlur()- This function is used to modify the image by sharpening the edges of the image, smoothen the image, and will minimize the
blurring property.
5. divide()- This function is used for the normalization of the image as it doesn’t lose its previous properties.
Finally will save the image using imwrite() function.
Python3
import cv2image = cv2.imread('Image.jpg')  # loads an image from the specified file# convert an image from one color space to anothergrey_img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)invert = cv2.bitwise_not(grey_img)  # helps in masking of the image# sharp edges in images are smoothed while minimizing too much blurringblur = cv2.GaussianBlur(invert, (21, 21), 0)invertedblur = cv2.bitwise_not(blur)sketch = cv2.divide(grey_img, invertedblur, scale=256.0)cv2.imwrite("sketch.png", sketch)  # converted image is saved as mentioned name
Input image:
Output:
Input image:
Output:
adityatri
sumitgumber28
avtarkumar719
Misc
Misc
Misc
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Activation Functions
Characteristics of Internet of Things
Advantages and Disadvantages of OOP
Sensors in Internet of Things(IoT)
Challenges in Internet of things (IoT)
Election algorithm and distributed processing
Introduction to Internet of Things (IoT) | Set 1
Introduction to Electronic Mail
Communication Models in IoT (Internet of Things )