Как увеличить разрешение изображения в python - возможное решение? - PullRequest
0 голосов
/ 02 марта 2019

У меня была интересная идея увеличить разрешение изображения путем копирования каждого отдельного пикселя 9 раз в сетке.Итак, я пошел дальше и внедрил его в python, используя библиотеку Pillow.

Проблема здесь в том, что изображение не более четкое или с высоким разрешением, чем предыдущее.Это все еще похоже на увеличенную версию предыдущего изображения.Пожалуйста, возьмите гусак для себя.

1.Новое изображение, сгенерированное программой: - enter image description here

2.Старое изображение, увеличенное в соответствии с размером предыдущего изображения: - enter image description here

Я хочу знать, почему это не работает, как предполагалось?почему изображение не острее?Для чего я пытался уменьшить новое изображение до размера оригинального изображения, но это не острее.Это выглядит так же.

Моя программа работает как задумано, но я все еще воспроизводю ее здесь для полноты картины.Это делает новое изображение в 9 раз больше, в 3 раза шире и в 3 раза больше оригинальной высоты.

import os
from PIL import Image

factor = 3

che = Image.open('../dog.jpg')
che.show()
px = che.load()
width, height = che.size


img = Image.new('RGB', (width*factor, height*factor), 'Black')
# img.show()
pixels = img.load()
for i in range(width):
    for j in range(height):
        pixels[factor*i, factor*j] = px[i, j]
        pixels[factor*i+1, factor*j] = px[i, j]
        pixels[factor*i+2, factor*j] = px[i, j]

        pixels[factor*i, factor*j+1] = px[i, j]
        pixels[factor*i+1, factor*j+1] = px[i, j]
        pixels[factor*i+2, factor*j+1] = px[i, j]

        pixels[factor*i, factor*j+2] = px[i, j]
        pixels[factor*i+1, factor*j+2] = px[i, j]
        pixels[factor*i+2, factor*j+2] = px[i, j]

# img.show()
img.save('../dog2.jpg')
...