In this OpenCV article we are going to talk about OpenCV Median Blurring for Images in Python,
so this is the third technique for image smoothing or blurring in OpenCV . the first one was
using Averaging, and second was using Gaussian Blurring you can check the articles in the
below links.
Read More Image Smoothing Techniques in OpenCV
1: OpenCV Averaging Image Blurring in Python
2: OpenCV Gaussian Blurring for Images in Python
Median Blurring computes the median of all pixels under the kernel and the central pixel is
replaced with the median value, according to OpenCV Documentation it is mostly used for
removing salt and pepper noises.
So now this is the complete code for OpenCV Median Blurring for Images in Python
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 27 |
import cv2 import matplotlib.pyplot as plt image = cv2.imread('lena_salt.png') median = cv2.medianBlur(image,5) #convert the image from bgr to rgb original_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) median_blur = cv2.cvtColor(median, cv2.COLOR_BGR2RGB) plt.subplot(121) plt.imshow(original_image),plt.title('Original Image') plt.xticks([]), plt.yticks([]) plt.subplot(122),plt.imshow(median_blur),plt.title('Median Blurred Image') plt.xticks([]), plt.yticks([]) plt.show() cv2.waitKey(0) cv2.destroyAllWindows() |
OK for this purpose we are going to use this image, you can see that we have a lot of
noises in this image.
This line of code is used for reading of the image, make sure that you have added an image
in your working directory.
1 |
image = cv2.imread('lena_salt.png') |
So in here we are going to use cv2.medianBlur() function for this purpose, we need to add
some parameters, our image and also the kernel size.
1 |
median = cv2.medianBlur(image,5) |
Because we are going to show our image in Matplotlib, so Matplotlib uses RGB (Red, Green, Blue)
color system, and OpenCV uses BGR (Blue, Green, Red) color system, we need to convert the BGR
color to RGB. if we don’t do this there will be messed up in the color.
1 2 |
original_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) median_blur = cv2.cvtColor(median, cv2.COLOR_BGR2RGB) |
Note: cv2.waitKey() is a keyboard binding function. Its argument is the time in milliseconds.
the function waits specified milliseconds for any keyboard event. If you press any key in that
time, the program continues. If 0 is passed, it waits indefinitely for a key stroke.
So run the complete code and this is the result.
Subscribe and Get Free Video Courses & Articles in your Email