def create_shadow_corrected_image(casi_normalized, casi, shadow_map): ratio = calculate_shadow_ratio(casi, shadow_map, numpy.logical_not(shadow_map).astype(int)) add_coef = numpy.repeat(numpy.expand_dims(shadow_map, axis=2), casi_normalized.shape[2], axis=2) * (ratio - 1) final_casi = casi + (casi * add_coef) imwrite("muulf_hsi_shadow_corrected.tif", final_casi.astype(numpy.float32), planarconfig='contig')
def load_shadow_map(self, neighborhood, data_set): shadow_map = imread(self.get_model_base_dir() + 'muulf_shadow_map.tif') shadow_map = numpy.pad(shadow_map, neighborhood, mode='symmetric') shadow_ratio = None if data_set is not None: shadow_ratio = calculate_shadow_ratio( data_set.casi, shadow_map, numpy.logical_not(shadow_map).astype(int)) return shadow_map, shadow_ratio
def load_shadow_map(self, neighborhood, data_set): shadow_map = imread(self.get_model_base_dir() + 'shadow_map.tif') shadow_map = numpy.pad(shadow_map, neighborhood, mode='symmetric') shadow_ratio = None if data_set is not None: shadow_ratio = calculate_shadow_ratio( data_set.concrete_data[:, :, 0:data_set.concrete_data.shape[2] - 1], shadow_map, numpy.logical_not(shadow_map).astype(int)) shadow_ratio = numpy.append(shadow_ratio, [1]).astype(numpy.float32) return shadow_map, shadow_ratio