Ho finito HW6 e ora sto provando a renderlo più efficiente, e ho notato che le funzioni che impiegano più tempo nel mio programma sono quelle che utilizzo per trovare i vertici in alto a sinistra ed in basso a destra di ogni rettangolo.
Alle mie funzioni passo un insieme chiamato "insieme_colori" che inizialmente contiene tutti i diversi colori presenti nell'immagine (tranne il nero) , scorrendo le righe , se nella riga sono presenti colori che sono nell'insieme_colori la scorro pixel per pixel inserendo in una lista la posizione dei primi pixel dei colori in questione e rimuovo il colore da "insieme_colori". Ovviamente per gli angoli in basso scorro sia la matrice che le righe al contrario .
Ho provato a migliorare queste funzioni inserendo più controlli per cercare di scorrere meno pixel possibili , ma il tempo che guadagno evitando i pixel inutili è meno di quello che perdo a fare i controlli .
Vorrei sapere se avete qualche consiglio da darmi per velocizzare il processo . Spero di aver fatto capire il funzionamento delle mie funzioni , se avete domande sarò lieto di rispondervi.
Alle mie funzioni passo un insieme chiamato "insieme_colori" che inizialmente contiene tutti i diversi colori presenti nell'immagine (tranne il nero) , scorrendo le righe , se nella riga sono presenti colori che sono nell'insieme_colori la scorro pixel per pixel inserendo in una lista la posizione dei primi pixel dei colori in questione e rimuovo il colore da "insieme_colori". Ovviamente per gli angoli in basso scorro sia la matrice che le righe al contrario .
Ho provato a migliorare queste funzioni inserendo più controlli per cercare di scorrere meno pixel possibili , ma il tempo che guadagno evitando i pixel inutili è meno di quello che perdo a fare i controlli .
Vorrei sapere se avete qualche consiglio da darmi per velocizzare il processo . Spero di aver fatto capire il funzionamento delle mie funzioni , se avete domande sarò lieto di rispondervi.