Потеря качества после объединения двух изображений с PIL и NumPy - PullRequest
0 голосов
/ 08 июня 2018

Я использую PIL и numpy, чтобы объединить два изображения, в то время как одно представляет собой .jpg, а другое изображение представлено массивом numpy, который определяет маску, которую я хочу поместить поверх исходного изображения (в основном простоматрица с одним и нулевым входом и размером .jpg).Составная функция PIL отлично работает для этого, но по какой-то причине после сохранения составного изображения размер файла уменьшается примерно до 1/3 от исходного размера изображения.Может кто-нибудь объяснить мне это поведение?

Вот фрагмент кода:

import numpy as np
import PIL
from PIL import Image
from PIL import ImageColor

rgb = ImageColor.getrgb('black')

# Read image and write into numpy array
image = Image.open('test_image.jpg')
(im_width, im_height) = image.size

# Create empty mask
mask = np.zeros((im_width, im_height))

# Composite image and mask
solid_color = np.expand_dims(np.ones_like(mask), axis=2) * 
  np.reshape(list(rgb), [1, 1, 3])
pil_solid_color = 
  Image.fromarray(np.uint8(solid_color)).convert('RGBA')
pil_mask = Image.fromarray(np.uint8(255.*mask)).convert('L')

image = Image.composite(pil_solid_color, image, pil_mask)

# save image
image.save('test_image_with_mask.jpg')

Код был вдохновлен API обнаружения объектов tnesorflow.Заранее спасибо.

...