Я использую 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.Заранее спасибо.