此链接中的最佳答案How to pixelate a square image to 256 big pixels with python?使用PIL
对图像进行像素化。可以将图像从PIL
转换为cv2.Mat
,但是我不允许使用其他库,并且使用opencv找不到任何好的方法。
有没有办法仅在Python中使用OpenCV
库对图像进行像素化?任何样本图像都可以。我可以控制像素大小参数的解决方案,以便以后进行调整。
答案 0 :(得分:3)
在自己的帮助下,我将上面提到的最高答案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)
输入(来自链接的问题):
输出:
免责声明:我是Python的新手,尤其是OpenCV(胜利的C ++)的Python API。非常欢迎评论,改进,强调Python的执行!!