Aree comuni tra matrici in MATLAB.

Come sapete studiare Elaborazione delle immagini digitali mi è piaciuto parecchio. E’ stato interessantissimo scoprire tutti i metodi usati per gestire le immagini da parte di un calcolatore. Qualsiasi operazione, anche la più semplice, è frutto di operazioni ben ponderate. Una su tutte? Lo zooming di una immagine.
Siamo abituati a cliccare sui tastini “+” o “-” del nostro visualizzatore d’immagini che non pensiamo mai che scelte debba fare un sistema operativo per soddisfare la nostra operazione.
Una delle più basilari tecniche di zooming prevede il raddoppio delle linee e delle colonne della matrice di uscita e l’assegnazione ad ognuna di queste nuove celle di un nuovo valore che, presumibilmente, dovrà rispecchiare quelli dell’intorno corrispettivo nell’immagine di partenza.

Tutto avviene in pochi istanti tanto che nessuno immagina ci siano calcoli matematici da eseguire (anche se per immagini di grandi dimensioni qualche rallentamento si è abituati ad avvertirlo).

L’esercizio in MATLAB che mi è stato richiesto durante l’esame era di una semplicità spiazzante. Mi ero preparato a equalizzazioni o cose molto più complesse, quando mi sento domandare: “Prese due immagini in bianco e nero (non scala di grigio!), sa generare una nuova immagine contenente le parti in comune?”.

In pratica dovevo fare l’intersezione tra due insiemi con area non nota.

Ho guardato il professore un po’ sorpreso perché sapevo che tradurre la richiesta in codice era una semplice riga ma tant’era la richiesta.

La vera potenza di MATLAB nel gestire matrici è che, il più delle volte, non è necessario effettuare cicli (come faremmo in altri linguaggi di programmazione quando incontriamo array mono o multi dimensionali) per effettuare il confronto dei valori. L’importante è che le due matrici abbiano dimensioni identiche (ma è banale renderle tali: vedi il reshaping di una matrice).

Comunque, il codice per trovare l’intersezione è questo:

% Chiamiamo le immagini di partenza im1 e im2
% (che possiamo aver letto da file o generato durante un programma)
% e im_out l'immagine di uscita

im_out = im1 & im2;

% Ho già finito, mostro l'output.
imshow(im_out);

Ho usato un confronto booleano* tra le due matrici e assegnato il valore alla matrice im_out. Avrei potuto eseguire l’esercizio tramite un ciclo for che scansionava righe e colonne, ma come dicevo, avrebbe sminuito l’efficienza di MATLAB.

L’esercizio era persino più banale di quello dell’altra volta in cui avevo specchiato un’immagine! 🙂

Emanuele

All’erta.

Stasera, mentre aspettavo in macchina che tornassero i miei dalla Messa, con il MacBook tra le gambe e quel progetto in java da portare avanti, ripensavo ad una bella frase di Tiziano Terzani.

Tornato a casa sono andato a rileggermela.

La regola secondo me è: quando sei a un bivio e trovi una strada che va in su e una che va in giù, piglia quella che va in su. E’ più facile andare in discesa, ma alla fine ti trovi in un buco. A salire c’è speranza. E’ difficile, è un altro modo di vedere le cose, è una sfida, ti tiene all’erta.

Tratto da: “La fine è il mio inizio” di Tiziano Terzani

Forse è proprio così che sono in questo periodo. All’erta. Cerco di rendere tutto perfetto perché non voglio ci siano errori che possano complicarmi la vita.

La voglio semplice… e me la rendo tale. Mia cugina mi ha detto che per il mio ottimismo, potrei essere benissimo il fratellino di Pollyanna. E Pollyanna ve la ricordate tutti: era quella bambina che persino ridotta in sedia a rotelle non perse mai l’entusiasmo grazie al “gioco della felicità” insegnatole dal padre, tanto da tornare a camminare.

In realtà, esiste persino la sindrome di Pollyanna. Io però le difficoltà le vedo, semplicemente voglio correre sul prato anch’io. 🙂

Mi piace troppo il profumo dell’erba calpestata…

Emanuele

Presentepassatofuturomadovestiamoandando.

Perché per me l’unica gente possibile sono i pazzi, quelli che sono pazzi di vita, pazzi per parlare, pazzi per essere salvati, vogliosi di ogni cosa allo stesso tempo, quelli che mai sbadigliano o dicono un luogo comune, ma bruciano, bruciano, bruciano, come favolosi fuochi artificiali color giallo che esplodono come ragni attraverso le stelle e nel mezzo si vede la luce azzurra dello scoppio centrale e tutti fanno Oooohhh!

Tratto da: “On the road” di Jack Kerouac

Certi giorni mi sento vivo, proprio come una virgola di questa frase che non si ferma ma che è già in movimento ancor prima di definire il suo significato. E’ bello! 🙂

(e concludo anch’io col punto esclamativo!).

Emanuele

La mia vita come un film.

In questi giorni sto vivendo spesso sensazioni bellissime. La mia vita sembra un film.

Non per la mia storia o per qualche evento particolare ma perché, sempre più spesso, mi vedo come “un personaggio nella scena”.

Vedo e vivo certi momenti come se ci fosse il fermo immagine. Come se potessi congelare quell’istante e muovermi al suo interno quasi fosse tutto un bellissimo effetto scenico in tre dimensioni.

Non so se sia pazzia… però qualche giorno fa dicevo che è bello riuscire a vedere la vita come se avessimo sempre degli occhiali colorati per rendere tutto più buffo.

Beh, quei momenti per me diventano spettacolari… e poco importa se mi trovo in un posto noioso o nel punto più allegro e popolato del pianeta.

Sono io che mi estraneo e guardo tutto e tutti dall’alto.

Emanuele

La bellezza del dolore.

In realtà “Un altro giro di giostra” è un libro che sto vivendo in maniera particolare. Mi fa tornare, puntualmente in mente due persone, una delle quali – purtroppo – non c’è più da anni ma che son sicuro sarebbe orgogliosa di me se potesse leggermi.

Tiziano Terzani racconta la sua malattia e riempie di belle riflessioni questo percorso che, più che fisico, diventa spirituale.

Ieri sera, leggendo, sono finito tra alcune pagine che ho proprio voglia di fermare qui, perché hanno un valore universale, indipendentemente dalla salute fisica di ognuno di noi.

La sconfitta del dolore è considerata una delle grandi vittorie dell’uomo moderno. Eppure anche questa vittoria non è necessariamente tutta positiva. Innanzitutto il dolore ha una sua importante funzione naturale: quella di allarme. Il dolore segnala che qualcosa non va e in certe situazioni il non avere dolore può essere più penoso dell’averlo.

[…] E poi: eliminando la sofferenza al suo primo insorgere, l’uomo moderno si nega la possibilità di prendere coscienza del dolore e della straordinaria bellezza del suo contrario: il non-dolore. Perché in tutte le grandi tradizioni religiose il dolore è visto come una cosa naturale, come una parte della vita? C’è forse nel dolore un qualche significato che ci sfugge? Che abbiamo dimenticato? Se anche ci fosse, non vogliamo saperne. Siamo condizionati a pensare che il bene deve eliminare il male, che nel mondo deve regnare il positivo, e che l’esistenza non è l’armonia degli opposti.

[…] Ma questa è la nostra civiltà. Ci abituiamo sempre più a risolvere con mezzi esterni i nostri problemi e con ciò perdiamo sempre più i nostri poteri naturali.

Tratto da: “Un altro giro di giostra” di Tiziano Terzani

E’ una cosa sulla quale mi ritrovo spesso a riflettere. Il riempirsi di tranquillanti tipico della nostra società o la mancanza di coraggio nel fermarsi per riflettere un po’ (ed evitare di star male) sono tutti sintomi di un mondo che non funziona più come dovrebbe.

Abbiamo un cervello stupendo eppure affidiamo sempre più alle macchine, alla scienza, il compito di risolvere le nostre difficoltà.

I santi sublimavano la sofferenza. Noi aspettiamo la prossima vita per provarci? 🙂

Emanuele