ℛecupero di un QR code che è stato reso illeggibile dal tempo e
dall'umidità. In pratica un'opera di restauro del codice QR. Usiamo il programma
gratuito The GIMP. È necessario avere un po' di dimestichezza con
questo programma anche se in questo tutorial cercheremmo di essere
elementari. Quella che segue, Figura 1, è l'immagine di
partenza:
Bitcoin Paper
wallet rovinato
L'immagine è di tipo .jpg ed è derivata da una foto ad alta risoluzione.
L'immagine che segue, Figura 2, è già un po' trattata,
infatti è stata ruotata con lo strumento layer>transform>arbitrary
rotation, poi è stata deformata in modo da essere squadrata con toolbox>perspective
tools oltre che usando le guide,
diverse guide per allineare l'immagine a un quadrato usando i diversi
strumenti (rotazioni e prospettiva).
Se cercate aiuto per qualche strumento che non vi è chiaro come può essere
usato per fare le operazioni descritte in questo tutorial, potete usare
l'AI di Bing che è a conoscenza di come funziona The Gimp. Sfortunatamente
la versione gratuita è limitata ma potrebbe aiutarvi quando siete nei guai
su come fare. Cliccate nel link seguente: LINK
e poi in alto cliccate su "COPILOT", appena sotto la barra di ricerca:
entrerete nella chat di Chat-GPT.
Usiamo il ridimensionamento dell'immagine in modo da avere una immagine
quadrata: image>scale image, cerchiamo una risoluzione multipla di 33
(33 x n). Il numero intero n sarà usato in seguito. 33 perché il numero di
quadretti è 33x33 per memorizzare un indirizzo bitcoin del tipo:
1BB6LLrQFTwXiWkFakNfZXd4pyGxpbBDw
In effetti il nostro esempio contiene un indirizzo bitcoin. Se il QR code
ha un numero di quadretti diverso da 33x33 allora si segue questa guida
con il nuovo numero al posto di 33. Per avere il QR code che vedete in
Figura 2, allarghiamo l'immagine di n pixel in orizzontale e n
in verticale con image>canvas size (l'allargamento verrà riempito con
il colore di sfondo che avete impostato) e centriamo l'immagine con
l'opzione "center" di canvas size.
QR code squadrato
Sovrapponiamo un reticolo per individuare i quadretti da colorare di nero
manualmente. Usiamo filters>distorts>mosaic con queste impostazioni:
Squares
Size: n
height: 1
spacing: 1
Neatness: 1.00
light: 0.0
color variation: 0.0
light direction: 90
Non vistiamo le altre impostazioni. Premiamo ok appena vediamo che il
reticolo è come lo vogliamo e come mostrato in Figura 2. Adesso abbiamo
proprio l'immagine qui sopra. Comunque sia dobbiamo notare che il reticolo
si sovrappone quasi esattamente col nostro codice QR da restaurare.
Si aggiunga un layer: layer>new layer con sfondo bianco (fill with
White) e si applichi la retinatura appena vista
(filters>distorts>mosaic) anche al nuovo layer. Con la palette
layer (la finestrella a destra dei layer) si agisca sull'opacità del
nuovo layer (tasto destro>edit layer attributes>opacity) in modo da
vedere contemporaneamente il nuovo layer e l'immagine Figura 2.
Manualmente si proceda a riempire di nero i quadretti del nuovo layer con
lo strumento secchiello toolbox>bucket fill tool. L'operazione è lunga
e tediosa. Ovviamente riempite di nero i quadretti del nuovo layer!
Esiste una modalità automatica ma dipende dall'immagine di partenza. Si
può agire con filters>distorts>mosaic sulla scelta "color
averaging", si provi a vistarla. Dovrebbero comparire con una tonalità più
scura tutti i quadretti del QR code. Con l'immagine qui sopra non funziona
e si ottengono molti errori. Se funzionasse basta un filtro a soglia
(colors>threshold) per rendere neri i quadretti più scuri e bianchi
quelli più chiari.
Continuiamo il lavoro solo sul nuovo livello e quindi abbiamo ottenuto
l'immagine di Figura 3.
Quindi ho notato che la retinatura è solo lo sfondo trasparente della mia
png, con image>flatten image si elimina la retinatura trasparente e con
colours>threshold si eliminano eventuali righe grige rimaste dalla
retinatura. Vedi Figura 4.
Pare che l'immagine ottenuta non sia leggibile dai programmi di qrcode e
occorre selezionare la bacchetta magica, toolbox>fuzzy select tool,
metterla sul bianco dell'immagine del nuovo layer e selezionare tutte le
parti bianche dell'immagine, fare un select>inverse, poi un
select>grow di 1 pixel quindi edit>fill with foreground color
(black) e quindi select>none. Otteniamo la Figura 5.
Si salva l'immagine, si esegue un export png del codice QR (solo il nuovo
layer, Figura 5) e si passa al riconoscimento del qrcode con il programma
zbar o altri programmi o con programmi on line come questo.
Con zbarimage si ottiene:
$ zbarimg /home/sandro/Desktop/qr.png
QR-Code:1BB6LLrQFTwXiWkFakNfZXd4pyGxpbBDw
scanned 1 barcode symbols from 1 images in 0.03 seconds
Questa è la sequenza di immagini ottenute:
Codice QR dopo l'operazione manuale di riempimento dei
singoli quadretti
Codice QR dopo avere eliminato la retinatura
Codice QR finale (qr.png)
Consiglio: la persona che aveva necessità di recuperare il qr code di
questo testo esiste ed ha stampato il foglietto che vedete a inizio del
testo (che si chiama Bitcoin Paper wallet) con una stampante a getto
d'inchiostro, il foglietto dopo un paio d'anni si è sbiadito. Il consiglio
è di non usare le stampanti a getto d'inchiostro ma le stampanti laser che
quindi abbiano il toner che in definitiva è una plastica che si appiccica
alla carta.
Non dimenticatevi di mettere la vostra opinione: scrivete il commento, premete "Inserisci" e il commento è immediatamente pubblicato nell'area qui sotto: grazie!
Altri testi sullo stesso argomento li trovate elencati di seguito sotto l'argomento Bitcoin
Mappa degli Ospedali del Veneto che eseguono aborti Farmacologici e non.
A proposito dei giornalisti...
La legge determina le condizioni in cui si esercita la libertà garantita alla donna di ricorrere all'interruzione volontaria della gravidanza.
I miei testi sono sotto la Licenza "Creative Commons 3.0 Italia": se
sei interessato a pubblicare i miei articoli leggi le note
aggiuntive (Licenza di kensan.it) dove troverai anche le attribuzioni dei diritti per tutte le immagini pubblicate.
Questo sito memorizza sul tuo pc uno o più cookie di tipo tecnico, leggi l'informativa estesa.