Come avviene la lettura delle immagini in Python?

ManoleLorenzo (4090 points)
0 5 10
asked Nov 28, 2020 in Programmare in Python by ManoleLorenzo (4,090 points)
Buongiorno,

mentre stavo ragionando per completare l'Hw6, mi è venuta in mente questa domanda, e spero di riuscire a trovare una risposta con il vostro aiuto.

Come avrete letto dal "titolo", riguarda la lettura delle immagini. Riflettevo su come queste vengano lette in Python.

Il mio dubbio è il seguente:

-quando viene passata un'immagine, vengono lette prima le righe e dopo le colonne (o viceversa, prima le colonne e poi le righe), oppure la lettura delle righe e delle colonne avviene in simultanea?

Il mio dubbio non riguarda quindi in particolare il programma che sto scrivendo, bensì è una domanda sul funzionamento del linguaggio Python, e di come vengono analizzate le immagini al suo interno.

Come ultima cosa, questo metodo di analisi, differisce con i vari linguaggi di programmazione, oppure è tipico solo di Python?

Vi ringrazio per il vostro tempo.

2 Answers

Best answer
twgever (14740 points)
7 26 105
answered Nov 29, 2020 by twgever (14,740 points)
selected Dec 6, 2020 by ManoleLorenzo
"quando viene passata un'immagine, vengono lette prima le righe e dopo le colonne (o viceversa, prima le colonne e poi le righe), oppure la lettura delle righe e delle colonne avviene in simultanea?"

Questo dipende quando passi un'immagine (anche se sarebbe molto meglio chiamarla lista di liste) e fai caso l'abbiamo memorizzata nella variabile A, il primo argomento passato corrisponde all'indice dell'insieme più grande(quindi a quale delle liste ci stiamo riferendo), e il secondo elemento passato corrisponde all'elemento nella singola lista. Ovviamente questo lo facciamo con A[x][y]. Fai bene attenzione però, che possono esistere liste di liste di liste, oppure liste di liste di liste di liste ecc., Arrivando a poter scrivere cose come A[x][y][z] ecc.

Quindi non è "il funzionamento del linguaggio python", bensì una funzionalità di python che "sfruttiamo" in una determinata maniera, e ci "vediamo" delle cose, es. immagini, matrici ecc.

"è possibile fare un controllo simultaneo sia sulle righe che sulle colonne tramite un "and" nella condizione, è corretto?"

Non è molto chiaro cosa intendi con "controllo simultaneo", però se vuoi confrontare gli elementi della prima riga, con gli elementi della prima colonna, oppure con qualcos'altro, si può assolutamente fare

for indice in elementi di A:

    A[0][indice] sono gli elementi della prima riga

    A[indice][0] sono gli elementi della prima colonna

"Come ultima cosa, questo metodo di analisi, differisce con i vari linguaggi di programmazione, oppure è tipico solo di Python?"  (ma quindi, A è uguale ad A o ad A?)

Intendi analisi di liste di liste? o analisi di immagini? per quanto riguarda la prima, ti so giusto dire che in C, le matrici si trattano nella stessa maniera (anche se sono una struttura un po' diversa), cioè A[x][y]
ManoleLorenzo (4090 points)
0 5 10
commented Nov 29, 2020 by ManoleLorenzo (4,090 points)
Molto dettagliata come riposta, e per questo ti ringrazio. Anche la spiegazione dei vari punti non ha lasciato molto margine d'interpretazione.

Ho solo un dubbio per l'ultima parte,

"Intendi analisi di liste di liste? o analisi di immagini? per quanto riguarda la prima, ti so giusto dire che in C, le matrici si trattano nella stessa maniera (anche se sono una struttura un po' diversa), cioè A[x][y]"

Però per questo, lo approfondirò per conto mio, non essendo un argomento proprio di questo corso. Ma era soltanto una mia curiosità.
G
Giordano_Dionisi (3100 points)
12 38 58
answered Nov 28, 2020 by Giordano_Dionisi (3,100 points)
Ma in realtà le immagini sono matrici quindi la lettura dipende da come la imposti te... Puoi leggere prima le righe e poi le colonne e viceversa, insomma lui ti genera solo un IOFileWrapper (un oggetto di tipo File) e poi da lì te ci fai manipolazioni sopra... Per lui può essere un'immagine, un file Excel o quel che ti pare. è indifferente, sei te che sai che è un'immagine e quindi la manipoli da tale... Morale della favola, dipende da come la manipoli te, per il Python è solo un oggetto di tipo File
ManoleLorenzo (4090 points)
0 5 10
commented Nov 28, 2020 by ManoleLorenzo (4,090 points)

Che fossero delle matrici, questo l'avevo capito dalle scorse lezioni, però non mi era chiaro quel dettaglio descritto prima. Quindi da ciò che hai detto, è possibile fare un controllo simultaneo sia sulle righe che sulle colonne tramite un "and" nella condizione, è corretto?

G
Giordano_Dionisi (3100 points)
12 38 58
commented Nov 29, 2020 by Giordano_Dionisi (3,100 points)
Bhe se ho capsito bene la domanda devo dirti di no, cioè te controlli le righe e le colonne (o viceversa) e se scorri entrambe contemporaneamente praticamente ti vai a scorrere solo la diagonale principale della matrice, togliendo tutto il resto..
ManoleLorenzo (4090 points)
0 5 10
commented Nov 29, 2020 by ManoleLorenzo (4,090 points)
ti ringrazio per l'aiuto