Как удалить каждый второй пиксель в изображении

Рейтинг: 1Ответов: 1Опубликовано: 25.01.2023

Как удалить каждый второй пиксель в изображении через python, нашел в интернете такой вариант но он не сработал:

from PIL import Image

image = Image.open('img.png')

a = np.array(image)

a = np.delete(a, 6, 0)

imamge = Image.fromarray(a)

image.save('final_image.png')

Ответы

▲ 2

np.delete() не подходит для решения. Я взял (slice) a[::2, ::2] для выбора каждого 2 элемента из a.

from PIL import Image
import numpy as np

image = Image.open('img.png')

a = np.array(image)

a = a[::2, ::2]

image = Image.fromarray(a)

image.save('final_image.png')

Могу еще предложить такой код:

from PIL import Image

image = Image.open('img.png')

new_img = Image.new(image.mode, (image.width//2, image.height//2))

for i in range(0, image.width, 2):
    for j in range(0, image.height, 2):
        new_img.putpixel((i//2, j//2), image.getpixel((i, j)))

new_img.save('final_image.png')