Do you need any help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 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 2021-22 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.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

HM6 Bounding Box

L
Lion (1050 points)
0 16 24
asked Nov 26, 2020 in HW6 obbligatorio by Lion (1,050 points)
recategorized Nov 26, 2020 by andrea.sterbini
Buongiorno, io uso un sistema per trovare la bounding box ma i risultati sono sempre sbagliati, quindi vengo qui per chiedere il vostro aiuto.

Per ogni rettangolo io calcolo il perimetro e lo inserisco in un dizionario come chiave e per i valori gli associo le coordinate dell'angolo superiore sinistro e quello inferiore destro. Poi con la funzione MAX mi prendo il perimetro più grande e ritorno i valori associati alla chiave.

Cosa sbaglio? Forse trovare il perimetro non è il metodo corretto? Eppure dice di trovare il rettangolo che racchiude tutti gli altri rettangoli, quindi in teoria dovrebbe avere il perimetro più grande.

Grazie in anticipo
224 views

2 Answers

Best answer
twgever (15190 points)
7 27 105
answered Nov 26, 2020 by twgever (15,190 points)
selected Nov 26, 2020 by Lion
sbagli perchè non è detto che il rettangolo con il perimetro più grande contenga tutti gli altri. La bounding box ha al vertice in alto a sinistra le seguenti coordinate: xmin, cioè la x minima fra tutte le x minime di tutti i rettangoli, y min, cioè la y minima fra tutte le y minime di tutti i rettangoli. La bounding box è un rettangolo che ti devi immaginare, non che è già presente.
L
Lion (1050 points)
0 16 24
commented Nov 26, 2020 by Lion (1,050 points)
Ok grazie, ma allora per "xmin" intendi la x più vicina alla coordinata[0][0] e per "xmax" invece la x più vicina alla coordinata[len(altezza][0]? E per la y invece sono "ymax" quella più vicina a [len(altezza)][len(larghezza)] e "ymin" quella più vicina a [0][len(larghezza)]?
twgever (15190 points)
7 27 105
commented Nov 26, 2020 by twgever (15,190 points)
xmin non è una coppia di coordinate, è una coordinata sola. Quindi le devi considerare a coppia (xmin,ymin) e (xmax,ymax). dove xmin è la x fra tutte le x dei rettangoli che sta più vicina al lato sinistro (visto che le x rappresentano la colonna), ymin la y fra tutte le y dei rettangoli che sta più vicina al lato superiore ecc. Però non è importanto quali chiami come, l'importante è che siano quelle.
twgever (15190 points)
7 27 105
commented Nov 26, 2020 by twgever (15,190 points)
Inoltre, fai attenzione che non devi considerare l'angolo pù vicino a [0,0], bensì la coppia di x e y più vicina a 0,0, che possono anche provenire da due rettangoli diversi.
Francesco.Danese (2130 points)
0 1 9
answered Nov 26, 2020 by Francesco.Danese (2,130 points)

Ciao, non hai capito il concetto di bounding box. Non è un rettangolo tale da poterci disegnare tutti gli altri dentro, ma è il rettangolo minimo che puoi disegnare sull'immagine stessa che contenga tutti gli altri così come sono disposti nel'immagine.  Ecco un esempio:



(Sarebbero tre immagine diverse, con 3 bounding box diverse)

L
Lion (1050 points)
0 16 24
commented Nov 26, 2020 by Lion (1,050 points)
Ok grazie, quindi l'angolo alto a sinistra corrisponde all'angolo più vicino a colonna = 0, riga= 0 tra i rettangoli giusto? Mentre l'angolo in basso a sinistra è l'angolo più vicino a colonna = len(altezza), riga = 0? Poi per y il discorso è simile
s
sara.d (280 points)
0 0 1
commented Nov 27, 2020 by sara.d (280 points)
Ciao! Scusate in anticipo per la domanda (pare stupida ma io non ho ancora capito) la bounding box deve essere calcolata sull'immagine iniziale o sulla nuova immagine creata?
twgever (15190 points)
7 27 105
commented Nov 27, 2020 by twgever (15,190 points)
immagine iniziale naturalmente, la nuova immagine creata non ha figure, quindi sarebbe molto difficile calcolarla.
s
sara.d (280 points)
0 0 1
commented Nov 27, 2020 by sara.d (280 points)
Grazie Mille!