コード例 #1
0
ファイル: filters.py プロジェクト: zzzzzzrc/exposure
 def filter_param_regressor(self, features):
     color_curve = tf.reshape(features,
                              shape=(-1, self.channels,
                                     self.cfg.curve_steps))[:, None,
                                                            None, :]
     color_curve = tanh_range(*self.cfg.color_curve_range,
                              initial=1)(color_curve)
     return color_curve
コード例 #2
0
ファイル: filters.py プロジェクト: zzzzzzrc/exposure
 def filter_param_regressor(self, features):
     log_wb_range = 0.5
     mask = np.array(((0, 1, 1)), dtype=np.float32).reshape(1, 3)
     print(mask.shape)
     assert mask.shape == (1, 3)
     features = features * mask
     color_scaling = tf.exp(
         tanh_range(-log_wb_range, log_wb_range)(features))
     # There will be no division by zero here unless the WB range lower bound is 0
     # normalize by luminance
     color_scaling *= 1.0 / (1e-5 + 0.27 * color_scaling[:, 0] +
                             0.67 * color_scaling[:, 1] +
                             0.06 * color_scaling[:, 2])[:, None]
     return color_scaling
コード例 #3
0
ファイル: filters.py プロジェクト: zzzzzzrc/exposure
    def get_mask(self, img, mask_parameters):
        if not self.use_masking():
            print('* Masking Disabled')
            return tf.ones(shape=(1, 1, 1, 1), dtype=tf.float32)
        else:
            print('* Masking Enabled')
        with tf.name_scope(name='mask'):
            # Six parameters for one filter
            filter_input_range = 5
            assert mask_parameters.shape[1] == self.get_num_mask_parameters()
            mask_parameters = tanh_range(l=-filter_input_range,
                                         r=filter_input_range,
                                         initial=0)(mask_parameters)
            size = list(map(int, img.shape[1:3]))
            grid = np.zeros(shape=[1] + size + [2], dtype=np.float32)

            shorter_edge = min(size[0], size[1])
            for i in range(size[0]):
                for j in range(size[1]):
                    grid[0, i, j, 0] = (
                        i +
                        (shorter_edge - size[0]) / 2.0) / shorter_edge - 0.5
                    grid[0, i, j, 1] = (
                        j +
                        (shorter_edge - size[1]) / 2.0) / shorter_edge - 0.5
            grid = tf.constant(grid)
            # Ax + By + C * L + D
            inp = grid[:, :, :, 0, None] * mask_parameters[:, None, None, 0, None] + \
                  grid[:, :, :, 1, None] * mask_parameters[:, None, None, 1, None] + \
                  mask_parameters[:, None, None, 2, None] * (rgb2lum(img) - 0.5) + \
                  mask_parameters[:, None, None, 3, None] * 2
            # Sharpness and inversion
            inp *= self.cfg.maximum_sharpness * mask_parameters[:, None, None,
                                                                4,
                                                                None] / filter_input_range
            mask = tf.sigmoid(inp)
            # Strength
            mask = mask * (mask_parameters[:, None, None, 5, None] /
                           filter_input_range * 0.5 +
                           0.5) * (1 - self.cfg.minimum_strength
                                   ) + self.cfg.minimum_strength
            print('mask', mask.shape)
        return mask
コード例 #4
0
ファイル: filters.py プロジェクト: zzzzzzrc/exposure
    def get_mask(self, img, mask_parameters):
        with tf.name_scope(name='mask'):
            # Five parameters for one filter
            filter_input_range = 5
            assert mask_parameters.shape[1] == self.get_num_mask_parameters()
            mask_parameters = tanh_range(l=-filter_input_range,
                                         r=filter_input_range,
                                         initial=0)(mask_parameters)
            size = list(map(int, img.shape[1:3]))
            grid = np.zeros(shape=[1] + size + [2], dtype=np.float32)

            shorter_edge = min(size[0], size[1])
            for i in range(size[0]):
                for j in range(size[1]):
                    grid[0, i, j, 0] = (
                        i +
                        (shorter_edge - size[0]) / 2.0) / shorter_edge - 0.5
                    grid[0, i, j, 1] = (
                        j +
                        (shorter_edge - size[1]) / 2.0) / shorter_edge - 0.5
            grid = tf.constant(grid)
            # (Ax)^2 + (By)^2 + C
            inp = (grid[:, :, :, 0, None] * mask_parameters[:, None, None, 0, None]) ** 2 + \
                  (grid[:, :, :, 1, None] * mask_parameters[:, None, None, 1, None]) ** 2 + \
                  mask_parameters[:, None, None, 2, None] - filter_input_range
            # Sharpness and inversion
            inp *= self.cfg.maximum_sharpness * mask_parameters[:, None, None,
                                                                3,
                                                                None] / filter_input_range
            mask = tf.sigmoid(inp)
            # Strength
            mask *= mask_parameters[:, None, None, 4,
                                    None] / filter_input_range * 0.5 + 0.5
            if not self.use_masking():
                print('* Masking Disabled')
                mask = mask * 0 + 1
            else:
                print('* Masking Enabled')
            print('mask', mask.shape)
        return mask
コード例 #5
0
ファイル: filters.py プロジェクト: zzzzzzrc/exposure
 def filter_param_regressor(self, features):
     tone_curve = tf.reshape(features,
                             shape=(-1, 1, self.cfg.curve_steps))[:, None,
                                                                  None, :]
     tone_curve = tanh_range(*self.cfg.tone_curve_range)(tone_curve)
     return tone_curve
コード例 #6
0
ファイル: filters.py プロジェクト: zzzzzzrc/exposure
 def filter_param_regressor(self, features):
     log_gamma_range = np.log(self.cfg.gamma_range)
     return tf.exp(tanh_range(-log_gamma_range, log_gamma_range)(features))
コード例 #7
0
ファイル: filters.py プロジェクト: zzzzzzrc/exposure
 def filter_param_regressor(self, features):
     return tanh_range(-self.cfg.exposure_range,
                       self.cfg.exposure_range,
                       initial=0)(features)