È possibile applicare una funzione inversa per rimuovere un oggetto compilato?

0

Creo una filigrana con photoshop come questo

Per fare questa filigrana, utilizzo una funzione software di un software (ad esempio photoshop). Le funzioni sono implementate come set instructions (my variables)

a, b,c,d 

la funzione è così

f(x) = a,b,c,d

l'istruzione set è implementata come variables a, b, c, d

- place the bitmap over a photo or drawing (a)
- apply a Flat (b)
- adjust the transparency slider setting to X value (c)
- edit the Contrast amount X value (d)

Salvo il formato png, so anche che il software aggiunge anche EXIF metadata .

Ho inviato un'immagine al mio amico. Il mio amico apre la foto con il mio stesso software e vuole rimuovere la mia filigrana applicando la funzione inversa che ho usato per realizzare la mia filigrana trasparente in rilievo.

Se la mia funzione iniziale era

f = f (x)

usato per generare watermark, il mio amico ha bisogno di rimuovere la mia filigrana quindi ha bisogno di avere questa situazione

f = f ^-1 

hardware & software is the same, algorithm is known both, me and he.

Avere stesso software consente di usare EXIF metadata come un decode key e avere stesso formato png consentire di decodificare e separare filigrana come se fosse un livello codificato (in Photoshop, ad esempio, possiamo aggiungere modifiche e comporre un'immagine in livelli) ma applicando la funzione inversa possiamo rimuovere filigrana direttamente perché inverse function + key rende questo:

a) Recognize that picture It comes from the same software because EXIF metadata added after saving picture is like a decode key or access point
b) Recognize that algorith is same because format file is same (png)
c) Recognize that in that picture is integrated watermark like an locally integrable function, in sofware language is integrated like a encoded level that appears in software like merged layer as if it is only one.
This is possible because software works like an operator so using same software and adding metadata info generate a transfer function
d) Appling inverse function allow to transform encoded level like a simply layer.

Non abbiamo distorsione

È possibile?

    
posta Jacky Ned 04.12.2016 - 20:05
fonte

1 risposta

0

Dipende dalla filigrana che hai aggiunto. Se la filigrana cambia l'immagine in modo noto senza perdere la fedeltà dell'immagine , allora sì. Altrimenti, no.

Il tasto è in grado di mantenere sufficienti dettagli nell'immagine modificata che eseguendo esattamente la funzione inversa riproduce esattamente i dati dell'immagine originale. In genere, questo è un problema molto difficile perché i file di immagini digitali hanno una profondità di dati limitata.

Per un semplice esempio, immagina che la tua funzione abbia cambiato 1 pixel. Cambia un singolo canale - diciamo il rosso - di quel pixel moltiplicandolo per 2. Il canale rosso è iniziato con un valore di 180, 180x2 = 360 ma un file png standard consente solo un singolo byte per canale = 255. Quindi il tuo cambiamento perde dati, ciò che avrebbe dovuto essere 360 è in realtà 255. Ora inverti la tua funzione, 255/2 = 127, diversa dalla 180 originale.

Quindi, se riesci a elaborare un algoritmo intelligente che non supererà mai i limiti dei dati dell'immagine, allora sei OK. Buona fortuna! D'altra parte, se hai usato un diverso formato di immagine, avresti meno limiti, quindi il problema sarebbe un po 'più semplice.

L'altro modo per risolvere il problema sarebbe in qualche modo catturare i dati mancanti nei metadati. Ma poi la tua funzione "inversa" dovrebbe usare quei dati in qualche modo per ripristinare le immagini in piena fedeltà. E avresti bisogno di nascondere o crittografare in qualche modo i metadati altrimenti qualcun altro potrebbe fare la stessa cosa che renderebbe l'aggiunta di una filigrana piuttosto inutile in prima istanza.

    
risposta data 05.12.2016 - 00:35
fonte

Leggi altre domande sui tag