Как сделать пикселирование изображения с помощью OpenCV в Python? - PullRequest
3 голосов
/ 04 апреля 2019

Лучший ответ по этой ссылке Как пикселизировать квадратное изображение до 256 больших пикселей с помощью python? использует PIL для пикселизации изображения. Преобразование изображения из PIL в cv2.Mat возможно, но мне не разрешено использовать другую библиотеку, и я не смог найти хорошего метода с использованием opencv.

Есть ли способ пикселизировать изображение с использованием библиотеки OpenCV только в Python? Любой образец изображения в порядке. Решение с параметром размера пикселя, которым я могу управлять для дальнейшей настройки, будет очень цениться.

1 Ответ

4 голосов
/ 04 апреля 2019

РЕДАКТИРОВАТЬ ^ 2

С его помощью я переместил Марк Марк Сетчелл , который является вышеупомянутым главным ответом, в простой OpenCV код Python.(Посмотрите на историю изменений моего ответа, чтобы увидеть старую версию с использованием цикла.)


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 в целоми специально для Python API OpenCV (C ++ для победы).Комментарии, улучшения, выделение Python no-gos приветствуются!

...