From 145b47dbf504f19d908e7d6186ab2f16d45a6dce Mon Sep 17 00:00:00 2001 From: nagadomi Date: Thu, 19 May 2016 23:02:02 +0900 Subject: [PATCH] Add use_transparent_png option --- convert_data.lua | 43 ++++++++++++++++++++++++++++--------------- lib/settings.lua | 2 ++ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/convert_data.lua b/convert_data.lua index 181b292..2280257 100644 --- a/convert_data.lua +++ b/convert_data.lua @@ -32,28 +32,41 @@ local function load_images(list) local MARGIN = 32 local lines = utils.split(file.read(list), "\n") local x = {} + local skip_notice = false for i = 1, #lines do local line = lines[i] local im, meta = image_loader.load_byte(line) + local skip = false if meta and meta.alpha then - im = alpha_util.fill(im, meta.alpha, torch.random(0, 1)) - end - if settings.max_training_image_size > 0 then - im = crop_if_large(im, settings.max_training_image_size) - end - im = iproc.crop_mod4(im) - local scale = 1.0 - if settings.random_half_rate > 0.0 then - scale = 2.0 - end - if im then - if im:size(2) > (settings.crop_size * scale + MARGIN) and im:size(3) > (settings.crop_size * scale + MARGIN) then - table.insert(x, compression.compress(im)) + if settings.use_transparent_png then + im = alpha_util.fill(im, meta.alpha, torch.random(0, 1)) else - io.stderr:write(string.format("\n%s: skip: image is too small (%d > size).\n", line, settings.crop_size * scale + MARGIN)) + skip = true + end + end + if skip then + if not skip_notice then + io.stderr:write("skip transparent png (settings.use_transparent_png=0)\n") + skip_notice = true end else - io.stderr:write(string.format("\n%s: skip: load error.\n", line)) + if settings.max_training_image_size > 0 then + im = crop_if_large(im, settings.max_training_image_size) + end + im = iproc.crop_mod4(im) + local scale = 1.0 + if settings.random_half_rate > 0.0 then + scale = 2.0 + end + if im then + if im:size(2) > (settings.crop_size * scale + MARGIN) and im:size(3) > (settings.crop_size * scale + MARGIN) then + table.insert(x, compression.compress(im)) + else + io.stderr:write(string.format("\n%s: skip: image is too small (%d > size).\n", line, settings.crop_size * scale + MARGIN)) + end + else + io.stderr:write(string.format("\n%s: skip: load error.\n", line)) + end end xlua.progress(i, #lines) if i % 10 == 0 then diff --git a/lib/settings.lua b/lib/settings.lua index 6bb5cc9..a4b49a6 100644 --- a/lib/settings.lua +++ b/lib/settings.lua @@ -53,6 +53,7 @@ cmd:option("-downsampling_filters", "Box,Lanczos,Sinc", '(comma separated)downsa cmd:option("-gamma_correction", 0, 'Resizing with colorspace correction(sRGB:gamma 2.2) in scale training (0|1)') cmd:option("-upsampling_filter", "Box", 'upsampling filter for 2x scale training (dev)') cmd:option("-max_training_image_size", -1, 'if training image is larger than N, image will be crop randomly when data converting') +cmd:option("-use_transparent_png", 0, 'use transparent png (0|1)') local function to_bool(settings, name) if settings[name] == 1 then @@ -69,6 +70,7 @@ end to_bool(settings, "plot") to_bool(settings, "save_history") to_bool(settings, "gamma_correction") +to_bool(settings, "use_transparent_png") if settings.plot then require 'gnuplot'