Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

problema copia immagine

D
Deacoon (9100 points)
11 34 53
in Es1 by (9.1k points)
Com'è possibile che facendo la copia dell img e modificando solo la copia mi si modifca anche l'originale ??

ho provato a copiare usando .copy o [::] e anche facendo un altro load ma mi modifica comunque entrambe..

soluzione?
353 views

2 Answers

a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
Quando assegni un'immagine ad una variabile hai soltanto fatto un riferimento ad essa quindi lavori comunque con l'originale.
Anche se usi copy, non risolvi il problema perché crei una copia della lista esterna della matrice ma quelle interne (le righe) rimangono riferimenti.
O copi pixel per pixel oppure usi copy anche per le liste interne oppure lavori sull'originale direttamente senza fare copie... Tanto per originale si intende l'immagine che hai scaricato quindi la matrice, e non il file vero e proprio in formato png che hai letto.
Quando hai modificato la matrice/immagine la salvi.
Xriuk (13590 points)
8 24 116
by (13.6k points)

Allora, se tu ti limiti a copiare l'immagine con copy oppure [:], ciò che stai facendo è copiare i riferimenti ad ogni riga dell'immagine, quindi modificando poi una delle due griglie le modifichi entrambe, dovresti copiare con un for ogni riga, la quale contiene delle tuple, che sono immutabili, quindi automaticamente copiandole le duplicheresti invece che prenderne solo il riferimento.

Facendo un'altro load dell'immagine è impossibile che ti restituisca la stessa immagine, in quanto la ricarica di nuovo e crea una nuova griglia di pixel... quindi ricontrolla il tuo codice