prendere indirizzo immagine

s
simone.lioy (1420 points)
23 30 39
asked Dec 2, 2019 in HW6 obbligatorio by simone.lioy (1,420 points)
salve ragazzi come faccio a prendere l'indirizzo dell'immagine quando scriviamo la funzione nel programma prima di def es1(fimm,k) come faccio ad inserire fimm non so se mi sono spiegato
509 views

8 Answers

Best answer
c
chiarag (10160 points)
3 5 13
answered Dec 3, 2019 by chiarag (10,160 points)
selected Dec 3, 2019 by simone.lioy
Ricordati di importare il modulo 'immagini' nel tuo programma. Da lì puoi inserire in una variabile l'indirizzo della tua immagine, scrivendo:
variabile= immagini.load(fimm)
cosi "variabile" diventerà la tua immagine (in forma di matrice di pixel) sulla quale lavorerai.
s
simone.lioy (1420 points)
23 30 39
commented Dec 3, 2019 by simone.lioy (1,420 points)
perfetto,grazie
Christian (15220 points)
2 4 77
answered Dec 2, 2019 by Christian (15,220 points)
Ciao, fimm è un parametro della funzione es1.
Non ho ben capito cosa intendi, ma se vuoi testare e/o debuggare il tuo programma su Spyder ti basta richiamare la funzione in questo modo:


if __name__ == '__main__':
    es1('foto_1.png', 2)
    pass

Dove praticamente richiami la funzione passando i due parametri richiesti.
AndreaGasparini (18730 points)
6 12 118
answered Dec 2, 2019 by AndreaGasparini (18,730 points)
edited Dec 2, 2019 by AndreaGasparini

Il grader per la valutazione dell'homework esegue più volte il tuo programma passandogli come parametri il nome dell'immagine e un intero che poi dovrai utilizzare tramite i nomi che vedi, ovvero fimm e k.
Se dal tuo programma vuoi perciò caricare in memoria l'immagine (che a quel punto sarà rappresentata come una matrice) ti basterà eseguire la funzione load del modulo immagini nel seguente modo: nomeVariabile = load(fimm).
Ricordati di importare il modulo prima di effettuare qualsiasi operazione (e prima di definire la funzione es1): from immagini import load.

Se invece ti interessa sapere come scrivere delle istruzioni di test con un dato input puoi farlo sotto la riga if __name__ == '__main__' solamente quando il tuo programma è eseguito direttamente queste istruzioni saranno richiamate.
Ti lascio a seguire gli esempi di alcune delle chiamate che vengono effettuate dal grader per la valutazione e che aggiungendole a seguire di questo if potrai testare singolarmente:

if __name__ == '__main__' 
    es1('foto_1.png', 2)
    es1('foto_2.png', 4)
    es1('foto_3.png', 5)
    es1('foto_5.png', 1)
    es1('foto_6.png', 22)
    es1('foto_6_ter.png', 40)
    es1('foto_big.png', 2)
    es1('foto_mini.png', 2)
    es1('foto_raref.png', 1)
    es1('foto_spars.png', 1)

Ovviamente devi commentare le righe dei test che non vuoi eseguire, prova con una alla volta :)

Andrea Sanchietti (3100 points)
4 7 40
answered Dec 3, 2019 by Andrea Sanchietti (3,100 points)
L'indirizzo dell'immagine è salvato nella variabile fimm, quinidi puoi usare quella come indirizzo (se per indirizzo intendi il nome)

in generale (quindi non in questo caso) se la tua immagine sta nella stessa cartella del tuo programma python basta scrivere il nome completo (con estenzione) dell'immagne. se invece l'immagine sta da un'altra parte (per esempio in desktop) e tu stai scrivendo su un programma salvato nella cartella HW6obb, devi specificare il percorso (in questo caso 'QuestoPc/Desktop/nome_foto')
Antares (7770 points)
5 6 41
answered Dec 3, 2019 by Antares (7,770 points)
L'indirizzo dell'immagine è contenuto all'interno della variabile fimm. Se per qualche motivo vuoi fare dei test sulle immagini puoi farli direttamente dalla console di Spyder dopo aver aperto la cartella dell'homework. Ricordati che inizialmente devi fare "import immagini" per importare la classe che contiene il metodo load(). E dopo puoi creare una variabile a cui assegni immagini.load("nome_immagine.png"), ad esempio "foto_1.png".
plm (18850 points)
7 15 118
answered Dec 3, 2019 by plm (18,850 points)
Alla prima lettura avevo capito male, ma ora credo di aver compreso. In realtà fimm è una variabile in entrata ad una funzione generica. Infatti come parametro ci potrei anche passare un intero volendo, ovviamente per convenzione di questo esercizio sai che fimm corrisponde ad un immagine, per cui in realtà non stai richiamando un immagine in sè, ma semplicemente un parametro in ingresso

Volendo potresti fare così:

def ciaoSonoUnaFunzione(immagine):

...codice...

def es1(fimm,k):

      ciaoSonoUnaFunzione(fimm)
Tommaso Sgroi (12990 points)
6 11 91
answered Dec 3, 2019 by Tommaso Sgroi (12,990 points)
Basterà richiamare la funzione load('nome dell'immagine.png'), e inserirla in una variabile.
a
a.pietroluongo (11250 points)
15 38 131
answered Dec 3, 2019 by a.pietroluongo (11,250 points)
edited Dec 3, 2019 by a.pietroluongo

Puoi copiare il path dell'immagine e assegnarlo ad una variabile a

import immagini
es1(a,k)

Per cambiare directory e importare immagini.py in IPython usi cd nuovo path 
(in Spyder c'è un tab in alto a destra)

altrimenti importi il modulo os

import os
os.chdir(nuovo path)

Edit
all'interno della funzione  usi immagini.load(fimm) per caricare l'immagine come lista di liste