Topic: confrontare pixel in un'immagine.  (Letto 146 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline dando96

  • python unicellularis
  • *
  • Post: 4
  • Punti reputazione: 0
    • Mostra profilo
confrontare pixel in un'immagine.
« il: Luglio 14, 2019, 00:46 »
salve a tutti ragazzi, sono da poco qui sul forum e ho riscontrato un problema con questo esercizio sulla manipolazioni di immagini.
due piccole premesse prima di introdurvi al problema:
- sono ancora inesperto del linguaggio python
- utilizzo la versione 2.7.14 e non la 3 per programmare

"Si definisca come luminosità di un colore la media aritmetica del valore delle tre componenti di una sua rappresentazione RGB. Si definisca come luminosità media di un insieme di pixel la media aritmetica della luminosità dei colori dei pixel dell'insieme. Scrivere una funzione (più eventuali funzioni ausiliarie) che, data una immagine A, verifica se tutte le righe di A hanno la stessa luminosità media."

io ho pensato che la strada più intelligente sia quella di trovare la luminosità media di una riga per poi confrontarla con le altre, solo che scrivendo il codice non riesco a risolvere l'esercizio.
Se qualcuno avesse delle idee in merito sarebbe di grande aiuto.


Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.886
  • Punti reputazione: 9
    • Mostra profilo
Re:confrontare pixel in un'immagine.
« Risposta #1 il: Luglio 14, 2019, 19:05 »
> utilizzo la versione 2.7.14
Allora lascia perdere, davvero, Non ha senso andare avanti.

Per il resto, non riesco a capire... periodicamente spuntano fuori questi esercizi sulle """""""immagini"""""""", ma non capisco qual è il perverso manuale/professore che si accanisce con questa idea sballata...
Suppongo che la radice dell'idea qui è rappresentare un'immagine come una lista di liste (di liste... di liste...) annidate, e quindi tutti questi esercizi finiscono per essere un fastidioso conteggio di cicli for annidati, dove in effetti è facile perdere il conto del livello a cui si è.
Detto questo, prova a postare il codice che hai scritto... purché sia compatibile con python 3... e vediamo qual è il problema.

Offline dando96

  • python unicellularis
  • *
  • Post: 4
  • Punti reputazione: 0
    • Mostra profilo
Re:confrontare pixel in un'immagine.
« Risposta #2 il: Luglio 14, 2019, 19:45 »
il problema più grande è che non è un errore di sintassi nella programmazione ma il fatto che non riesco a capire come ragionare.
io ho pensato a qualcosa del genere:

l'obiettivo è quello di costruire una funzione che restituisce un booleano (true se tutte le righe hanno la stessa luminosità media, false altrimenti). Per restituire false basta quindi trovare una riga per cui la condizione non è verificata.
Quindi la prima cosa da fare, è quella di calcolare la luminosità della prima riga dell'immagine e poi passare alla seconda riga, calcolare la luminosità e confrontare con la luminosità della riga 0...se è la stessa, si passa alla terza riga, altrimenti si ritorna "False", con la terza riga fai la stessa cosa che si è fatto con la seconda e così via.
Ora, serve sicuramente una funzione ausiliaria che ti calcola per ogni riga la luminosità media, che avrà come parametri qualcosa del tipo: l'immagine, numero di riga.

il problema è che una volta trovate le varie luminosità dei pixel con i cicli annidati for, non capisco come creare una funzione ausiliaria che trovi la luminosità media rispetto alla riga interessata...

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.886
  • Punti reputazione: 9
    • Mostra profilo
Re:confrontare pixel in un'immagine.
« Risposta #3 il: Luglio 14, 2019, 20:56 »
E quindi, il codice che finora hai fatto e che funziona è questo:

<qui codice> <qui codice> <qui codice>

Invece, il codice che finora non sei riuscito a far funzionare è questo:

<qui codice> <qui codice> <qui codice>