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

gam*_*n67 4 python opencv image-processing pixelate

该链接的最佳答案如何使用python将正方形图像像素化为256个大像素?用于PIL像素化图像。可以将图像从转换为PILcv2.Mat但是我不允许使用其他库,并且使用opencv找不到任何好的方法。

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

Han*_*rse 7

编辑^ 2

在他自己的帮助下,我将Mark Setchell的答案(即上述最重要的答案)移到了纯OpenCVPython代码。(请查看我的答案的修订历史记录,以使用循环查看旧版本。)


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)
Run Code Online (Sandbox Code Playgroud)

输入(来自链接的问题):

输入项

输出:

输出量

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

  • @ mLstudent33我不确定我记得为什么。有时我会不止一次回答问题,因为OP要求使用Python和OpenCV进行某些操作,但是我可以使用ImageMagick单层衬管来完成更多操作,然后后来我意识到我可以使用Python进行处理,因为它基于完全不同的基础技术,我提出了一个新的答案以保持清晰。有时我会在一个答案中加入4种不同的技术/sf/answers/4030550331/,因为OP没有回应,所以我研究了可能对他们更具吸引力的不同解决方案。非常流畅。 (2认同)