Уменьшение размера изображения - PullRequest
0 голосов
/ 25 июня 2018

Я действительно запутался в этом аспекте. Каждый из квадратов на изображении содержит количество пикселей, где некоторые из квадратов больше, например, один квадрат может иметь ширину 9 и высоту 8, тогда как другой имеет ширину 7 и высоту 8. Что Я пытаюсь сделать, это создать меньшее изображение из этого исходного изображения, где каждый квадрат представляет пиксель, и все пиксели будут иметь одинаковый размер.

enter image description here

Я сделал это для изображения в оттенках серого, но, к сожалению, я получил неправильный результат, то есть полученное изображение не является точной копией входного изображения

Входное изображение

enter image description here

Выходное изображение

enter image description here

Код для изображения в оттенках серого

from PIL import Image
import numpy as np

name1 = raw_input("What is the name of the .png file you want to open? ")

filename1 = "%s.png" % name1

img = Image.open(filename1).convert('L')  # convert image to 8-bit grayscale
WIDTH, HEIGHT = img.size

a = list(img.getdata()) # convert image data to a list of integers
# convert that to 2D list (list of lists of integers)
a = np.array ([a[offset:offset+WIDTH] for offset in range(0, WIDTH*HEIGHT, WIDTH)])

print " "
print "Intial array from image:"  #print as array
print " "
print a

rows_mask = np.insert(np.diff(a[:, 0]).astype(np.bool), 0, True)
columns_mask = np.insert(np.diff(a[0]).astype(np.bool), 0, True)
b = a[np.ix_(rows_mask, columns_mask)]

print " "
print "Subarray from Image:"  #print as array
print " "
print b

print " "
print "Subarray from Image (clearer format):"  #print as array
print " "
for row in b: #print as a table like format
    print(' '.join('{:3}'.format(value) for value in row))

img = Image.fromarray(b, mode='L')

img.save("chocolate.png")


#print np.mean(b) #finding mean
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...