def __init__(self, key):

        self.key = key

        # Hash of key
        self.binary_hash_key = utils.md5Binary(self.key)

        # Cargando watermark
        self.watermark = Image.open("static/Watermarking.png").convert("1")

        # Utilizando Arnold Transforms
        for i in range(20):
            self.watermark = DAT().dat2(self.watermark)

        # Obteniendo array de la watermark
        watermark_array = np.asarray(self.watermark)

        # Datos de la watermark como lista
        watermark_as_list = watermark_array.reshape(
            (1, watermark_array.size))[0]

        # Tomando solo los valores correspondientes a los datos
        self.watermark_list = []
        for p in watermark_as_list:
            if p:
                self.watermark_list.append(0)
            else:
                self.watermark_list.append(255)

        # Calculando datos iniciales
        self.len_watermark_list = len(self.watermark_list)

        # Posiciones seleccionadas
        self.pos = []
    def __init__(self, key):

        self.key = key

        # Hash of key
        self.binary_hash_key = utils.md5Binary(self.key)

        # Cargando watermark
        self.watermark = Image.open("static/Watermarking.png").convert("1")

        # Obteniendo array de la watermark
        watermark_array = np.asarray(self.watermark)

        # Datos de la watermark como lista
        watermark_as_list = watermark_array.reshape(
            (1, watermark_array.size))[0]

        # Instancia a QR62
        myqr = MyQR62()

        # Tomando solo los valores correspondientes a los datos
        self.watermark_list = []
        for p in myqr.get_pos():
            if watermark_as_list[p]:
                self.watermark_list.append(0)
            else:
                self.watermark_list.append(255)
        for p in range(8):
            self.watermark_list.append(0)

        # Convertir a matriz cuadrada
        true_watermark_array = np.reshape(np.asarray(self.watermark_list),
                                          (38, 38))

        # Obtener imagen correspondiente
        true_watermark_image = misc.toimage(true_watermark_array)

        # Utilizando Arnold Transforms
        # Para imagen 38x38 el periodo es 40
        for i in range(30):
            true_watermark_image = DAT().dat2(true_watermark_image)

        true_watermark_array_scambred = np.asarray(true_watermark_image)

        # Datos de la watermark como lista
        self.len_watermark_list = true_watermark_array_scambred.size
        self.watermark_list = true_watermark_array_scambred.reshape(
            (1, self.len_watermark_list))[0]

        # Posiciones seleccionadas
        self.pos = []
Beispiel #3
0
    def __init__(self, key, watermark):
        
        self.key = key
        
        # Hash of key
        self.binary_hash_key = utils.md5Binary(self.key)

        # # Cargando watermark
        # self.watermark = Image.open("static/Watermarking.png").convert("1")
    
        # Temporal
        self.watermark = watermark

        self.w_periodicity = DAT().get_periodicity(
            self.watermark.size[0]
        )

        # Utilizando Arnold Transforms
        for i in range(self.w_periodicity  // 2):
            self.watermark = DAT().dat2(self.watermark)

        # Obteniendo array de la watermark
        watermark_array = np.asarray(self.watermark)

        # Datos de la watermark como lista
        watermark_as_list = watermark_array.reshape(
            (1, watermark_array.size))[0]
        
        # Tomando solo los valores correspondientes a los datos
        self.watermark_list = []
        for p in watermark_as_list:
            if p:
                self.watermark_list.append(255)
            else:
                self.watermark_list.append(0)
        
        # Calculando datos iniciales
        self.len_watermark_list = len(self.watermark_list)

        # Posiciones seleccionadas
        self.pos = []

        # Valores de coeficiente y delta optimo para el bloque
        (self.c, self.delta) = (1, 100) 
Beispiel #4
0
    def __init__(self, key, k=1.0):
        self.key = key
        # Hash of key
        self.binary_hash_key = utils.md5Binary(self.key)

        # Strength of the watermark
        self.k = k

        # Quantification matrix
        self.Q = np.asarray([[16, 11, 10, 16, 24, 40, 51, 61],
                             [12, 12, 14, 19, 26, 58, 60, 55],
                             [14, 13, 16, 24, 40, 57, 69, 56],
                             [14, 17, 22, 29, 51, 87, 80, 62],
                             [18, 22, 37, 56, 68, 109, 103, 77],
                             [24, 35, 55, 64, 81, 104, 113, 92],
                             [49, 64, 78, 87, 103, 121, 120, 101],
                             [72, 92, 95, 98, 112, 100, 103, 99]])

        # Cargando watermark
        self.watermark = Image.open("static/Watermarking.png").convert("1")

        # Obteniendo array de la watermark
        watermark_array = np.asarray(self.watermark)

        # Datos de la watermark como lista
        watermark_as_list = watermark_array.reshape(
            (1, watermark_array.size))[0]

        # Tomando solo los valores correspondientes a los datos
        self.watermark_list = []
        for p in watermark_as_list:
            if p:
                self.watermark_list.append(255)
            else:
                self.watermark_list.append(0)

        # Calculando datos iniciales
        self.len_watermark_list = len(self.watermark_list)

        # Posiciones seleccionadas
        self.pos = []
 def __init__(self, key):
     self.key = key
     # Hash of key
     self.binary_hash_key = utils.md5Binary(self.key)