Exemplo n.º 1
0
 def benchmark_extract_step(self, path, image, attack_name, attacked, attacked_path, watermark_file):
     wmark, gamma = self.extract_specific(numpy.array(Image.open(image)),
                                                       attacked_path)
     wmark = wmark.clip(0,255)
     wmark = wmark.astype('uint8')
     gamma = Metrics.gamma(wmark.ravel(), numpy.array(Image.open(watermark_file)).ravel())
     wmark = Image.fromarray(wmark)
     wmark.save(os.path.join(path, attack_name + "-extracted-wm-" + os.path.split(image)[1]))
     return wmark, gamma
Exemplo n.º 2
0
    def extract_specific(self, image, watermark):
        f_dct = TwoDimensionalDCT.forward(image)
        w = self.load_watermark(watermark)

        xi = []
        xo = []

        for entry in w:
            xo.append( entry[self.INSERTED_WATERMARK_VALUE_KEY] )
            xi.append( (f_dct[tuple(entry[self.INDEX_KEY])] - entry[self.ORIGINAL_VALUE_KEY]) /\
                       (self.alpha))

        return None, Metrics.gamma(xi, xo)