如何在Python中使用OpenCV对图像进行像素化?

时间:2019-04-04 05:39:47

标签: python opencv image-processing pixelate

此链接中的最佳答案How to pixelate a square image to 256 big pixels with python?使用PIL对图像进行像素化。可以将图像从PIL转换为cv2.Mat,但是我不允许使用其他库,并且使用opencv找不到任何好的方法。

有没有办法仅在Python中使用OpenCV库对图像进行像素化?任何样本图像都可以。我可以控制像素大小参数的解决方案,以便以后进行调整。

1 个答案:

答案 0 :(得分:3)

EDIT ^ 2

在自己的帮助下,我将上面提到的最高答案Mark Setchell's answer移到了简单的OpenCV Python代码中。 (请看我的答案的revision history,使用循环查看旧版本。)


import cv2

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

# Get input size
width, height, _ = input.shape

# 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

输出:

Output

免责声明:我是Python的新手,尤其是OpenCV(胜利的C ++)的Python API。非常欢迎评论,改进,强调Python的执行!!