import sys
if len(sys.argv) < 3:
- print(f'usage: {sys.argv[0]:s} in1.jpg ... inN.jpg out.jpg')
+ print(f'usage: {sys.argv[0]:s} in1.png ... inN.png out.png')
sys.exit(1)
-in_jpgs = sys.argv[1:-1]
-out_jpg = sys.argv[-1]
+in_pngs = sys.argv[1:-1]
+out_png = sys.argv[-1]
images = []
-for in_jpg in in_jpgs:
- print('read', in_jpg)
- images.append(gamma.read_image(in_jpg))
+for in_png in in_pngs:
+ print('read', in_png)
+ images.append(gamma.read_image(in_png))
+images = numpy.stack(images, 0)
-image = numpy.mean(numpy.stack(images, 0), 0)
-print('write', out_jpg)
-gamma.write_image(out_jpg, image)
+image = numpy.concatenate(
+ [
+ numpy.mean(images[:, :, :, :3], 0), # mean on RGB channels
+ numpy.product(images[:, :, :, 3:], 0) # and-operation on alpha channel
+ ],
+ 2
+)
+
+print('write', out_png)
+gamma.write_image(out_png, image)