Redo high_five movie with correlate.py, do tank_battle movie with correlate.py, rough...
[stop_motion.git] / gamma.py
index 0fa7177..a0717d6 100755 (executable)
--- a/gamma.py
+++ b/gamma.py
@@ -6,11 +6,12 @@ import numpy
 def read_image(in_file):
   # read double image
   image = imageio.imread(in_file) / 255.
-  
+
   # gamma decode
-  linear = image < .0031308 * 12.92
-  image[linear] /= 12.92
-  image[~linear] = ((image[~linear] + .055) / 1.055) ** 2.4
+  temp = image if len(image.shape) == 2 else image[:, :, :3] # skip alpha
+  linear = temp < .0031308 * 12.92
+  temp[linear] /= 12.92
+  temp[~linear] = ((temp[~linear] + .055) / 1.055) ** 2.4
 
   return image
 
@@ -18,9 +19,10 @@ def write_image(out_file, image):
   image = numpy.copy(image)
 
   # gamma encode
-  linear = image < .0031308
-  image[linear] *= 12.92
-  image[~linear] = 1.055 * image[~linear] ** (1. / 2.4) - .055
+  temp = image if len(image.shape) == 2 else image[:, :, :3] # skip alpha
+  linear = temp < .0031308
+  temp[linear] *= 12.92
+  temp[~linear] = 1.055 * temp[~linear] ** (1. / 2.4) - .055
 
   # write double image
   image[image < 0.] = 0.