Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pixelate image using OpenCV in Python?

Top answer in this link How to pixelate a square image to 256 big pixels with python? uses PIL to pixelate image. Converting image from PIL to cv2.Mat is possible but I'm not allowed to use other library, and I couldn't find any good method using opencv.

Is there any way to pixelate image using OpenCV library only in Python? Any sample image is fine. Solution with pixel size parameter that I can control for later adjustment would be very appreciated.

like image 378
gameon67 Avatar asked Apr 04 '19 05:04

gameon67


People also ask

How do I blur an image in OpenCV?

To average blur an image, we use the cv2. blur function. This function requires two arguments: the image we want to blur and the size of the kernel. As Lines 22-24 show, we blur our image with increasing sizes kernels.

How do you blur an image in Python cv2?

To make an image blurry, you can use the GaussianBlur() method of OpenCV. The GaussianBlur() uses the Gaussian kernel. The height and width of the kernel should be a positive and an odd number. Then you have to specify the X and Y direction that is sigmaX and sigmaY respectively.


1 Answers

EDIT^2

With the help of himself, I moved Mark Setchell's answer, which is the above mentioned top answer, to plain OpenCV Python code. (Have a look at the revision history of my answer to see the old version using a loop.)


import cv2

# Input image
input = cv2.imread('images/paddington.png')

# Get input size
height, width = input.shape[:2]

# Desired "pixelated" size
w, h = (16, 16)

# Resize input to "pixelated" size
temp = cv2.resize(input, (w, h), interpolation=cv2.INTER_LINEAR)

# Initialize output image
output = cv2.resize(temp, (width, height), interpolation=cv2.INTER_NEAREST)

cv2.imshow('Input', input)
cv2.imshow('Output', output)

cv2.waitKey(0)

Input (from linked question):

Input

Output:

Output

Disclaimer: I'm new to Python in general, and specially to the Python API of OpenCV (C++ for the win). Comments, improvements, highlighting Python no-gos are highly welcome!

like image 180
HansHirse Avatar answered Oct 20 '22 12:10

HansHirse