
Embossing
An embossing filter will take an image and convert it into an embossed image. We basically take each pixel and replace it with a shadow or a highlight. Let's say we are dealing with a relatively plain region in the image. Here, we need to replace it with plain gray color because there's not much information there. If there is a lot of contrast in a particular region, we will replace it with a white pixel (highlight), or a dark pixel (shadow), depending on the direction in which we are embossing.
This is what it will look like:

Let's take a look at the code and see how to do this:
import cv2 import numpy as np img_emboss_input = cv2.imread('input.jpg') # generating the kernels kernel_emboss_1 = np.array([[0,-1,-1], [1,0,-1], [1,1,0]]) kernel_emboss_2 = np.array([[-1,-1,0], [-1,0,1], [0,1,1]]) kernel_emboss_3 = np.array([[1,0,0], [0,0,0], [0,0,-1]]) # converting the image to grayscale gray_img = cv2.cvtColor(img_emboss_input,cv2.COLOR_BGR2GRAY) # applying the kernels to the grayscale image and adding the offset output_1 = cv2.filter2D(gray_img, -1, kernel_emboss_1) + 128 output_2 = cv2.filter2D(gray_img, -1, kernel_emboss_2) + 128 output_3 = cv2.filter2D(gray_img, -1, kernel_emboss_3) + 128 cv2.imshow('Input', img_emboss_input) cv2.imshow('Embossing - South West', output_1) cv2.imshow('Embossing - South East', output_2) cv2.imshow('Embossing - North West', output_3) cv2.waitKey(0)
If you run the preceding code, you will see that the output images are embossed. As we can see from the kernels above, we are just replacing the current pixel value with the difference of the neighboring pixel values in a particular direction. The embossing effect is achieved by offsetting all the pixel values in the image by 128
. This operation adds the highlight/shadow effect to the picture.