Browse Source

Drop full transparent background

nagadomi 9 years ago
parent
commit
180e7676e4
1 changed files with 6 additions and 0 deletions
  1. 6 0
      lib/image_loader.lua

+ 6 - 0
lib/image_loader.lua

@@ -6,6 +6,7 @@ local image_loader = {}
 
 local clip_eta8 = (1.0 / 255.0) * 0.5 - (1.0e-7 * (1.0 / 255.0) * 0.5)
 local clip_eta16 = (1.0 / 65535.0) * 0.5 - (1.0e-7 * (1.0 / 65535.0) * 0.5)
+local background_color = 0.5
 
 function image_loader.decode_float(blob)
    local im, alpha = image_loader.decode_byte(blob)
@@ -87,6 +88,11 @@ function image_loader.decode_byte(blob)
 	 local sum_alpha = (im[4] - 1.0):sum()
 	 if sum_alpha < 0 then
 	    alpha = im[4]:reshape(1, im:size(2), im:size(3))
+	    -- drop full transparent background
+	    local mask = torch.le(alpha, 0.0)
+	    im[1][mask] = background_color
+	    im[2][mask] = background_color
+	    im[3][mask] = background_color
 	 end
 	 local new_im = torch.FloatTensor(3, im:size(2), im:size(3))
 	 new_im[1]:copy(im[1])