Median Filtering with OpenCV medianBlur

OpenCV offers the method cv2.medianBlur that implements the median filter on images. The method takes two arguments:

  1. $src$: source image to apply the median filter
  2. $ksize$: an odd number integer for the size of the kernel.

In the example, below, we apply a medianBlur using kernels of sizes $5, 7, 9, 11, 13$ to demonstrate the effect of the kernel sizes.

import cv2
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline
%config InlineBackend.figure_format = 'retina'
butterfly = cv2.imread('butterfly.jpg')
Butterfly = cv2.cvtColor(butterfly, cv2.COLOR_BGR2RGB)
plt.imshow(butterfly)
Implementing MedianBlur with OpenCV

We then apply the medianBlur() at kernel sizes: $5, 7, 9, 11, 13$

butterfly_k5 = cv2.medianBlur(butterfly, 5)
butterfly_k7 = cv2.medianBlur(butterfly, 7)
butterfly_k9 = cv2.medianBlur(butterfly, 9)
butterfly_k11 = cv2.medianBlur(butterfly, 11)
butterfly_k13 = cv2.medianBlur(butterfly, 13)
fig = plt.figure(figsize=(6, 5))

fig.add_subplot(231)
plt.imshow(butterfly)
plt.title('Original Image')
plt.xticks(fontsize=6)
plt.yticks(fontsize=6)

fig.add_subplot(232)
plt.imshow(butterfly_k5)
plt.title('medianBlur, K=5')
plt.xticks(fontsize=6)
plt.yticks(fontsize=6)

fig.add_subplot(233)
plt.imshow(butterfly_k7)
plt.title('medianBlur, K=7')
plt.xticks(fontsize=6)
plt.yticks(fontsize=6)

fig.add_subplot(234)
plt.imshow(butterfly_k9)
plt.title('medianBlur, K=9')
plt.xticks(fontsize=6)
plt.yticks(fontsize=6)

fig.add_subplot(235)
plt.imshow(butterfly_k11)
plt.title('medianBlur, K=11')
plt.xticks(fontsize=6)
plt.yticks(fontsize=6)

fig.add_subplot(236)
plt.imshow(butterfly_k13)
plt.title('medianBlur, K=13')
plt.xticks(fontsize=6)
plt.yticks(fontsize=6)
Implementing MedianBlur with OpenCV