To implement Erosion and Dilation using Python and OpenCV.
- Anaconda - Python 3.7
- OpenCV
Import necessary packages
Create an empty window and add text to it
create a structuring element
Do the operation
Print the output images
import cv2
import numpy as np
from matplotlib import pyplot as plt
#to read the color image
input_image_path='shiba.jpg'
color_image=cv2.imread(input_image_path)
#convert the color image to grayscale
gray_image=cv2.cvtColor(color_image,cv2.COLOR_BGR2GRAY)
#perform edge detection using Canny
edges=cv2.Canny(gray_image,100,200)
#define the kernel size for erosion and dilation
kernel_size=5
kernel=np.ones((kernel_size,kernel_size),np.uint8)
#perform erosion
erosion=cv2.erode(edges,kernel,iterations=1)
#perform dilation
dilation=cv2.dilate(edges,kernel,iterations=1)
#display all images
plt.figure(figsize=(15,10))
plt.subplot(2,3,1)
plt.imshow(cv2.cvtColor(color_image,cv2.COLOR_BGR2RGB))
plt.title('Original Color Image')
plt.axis('on')
plt.subplot(2,3,2)
plt.imshow(gray_image,cmap='gray')
plt.title('Black and White Image')
plt.axis('on')
plt.subplot(2,3,3)
plt.imshow(edges,cmap='gray')
plt.title('Edge Segmentation')
plt.axis('on')
plt.subplot(2,3,4)
plt.imshow(erosion,cmap='gray')
plt.title('Erosion')
plt.axis('on')
plt.subplot(2,3,5)
plt.imshow(dilation,cmap='gray')
plt.title('Dilation')
plt.axis('on')
plt.show()
Thus the generated text image is eroded and dilated using python and OpenCV.