In questo articolo vogliamo focalizzarci su un aspetto riguardante l'editing delle immagini, quello del resize, e in particolare di una libreria open source chiamata Caire che si occupa proprio di questa procedura ma lo fa in modo particolare. Caire infatti è una "content aware image resize library", tiene quindi conto del contenuto rappresentato.

Tale libreria è stata progettata basandosi su di un paper chiamato Seam Carving. Il Seam Carving (o liquid rescaling) è un algoritmo per il ridimensionamento delle immagini sensibile ai contenuti sviluppato da Shai Avidan e Ariel Shamir per i laboratori di ricerca della Mitsubishi Electric. Tale algoritmo funziona stabilendo un numero di cuciture (percorsi di minore importanza) in un'immagine e rimuove automaticamente le giunzioni per ridurre le dimensioni dell'immagine o inserisce nuove cuciture per estenderla.

Cattura

L'intaglio della cucitura consente inoltre di definire manualmente le aree in cui i pixel non possono essere modificati e offre la possibilità di rimuovere interi oggetti dalle fotografie.

Cattura

Caire si occupa dunque del resize intelligente di un immagine cosi da non renderla inutilizzabile una volta ultimato il processo. Vediamo in breve le sue feature principali:

  • supporto alla shell personalizzabile;
  • gestione dello shrinking e dell'enlarging dell'immagine;
  • resize dell'immagine verticale ed orizzontale;
  • possibilità di effettuare il resize a partire da una directory;
  • non necessita di librerie di terze parti;
  • è in grado di incrementare l'edge detection tramite filtri blur.

Caire si presenta come una libreria versatile e capace di offrire prestazioni notevoli. Installarla sul proprio PC è davvero semplice, basta clonare il suo codice dal repository di Github:

 go get github.com/esimov/caire/cmd/caire
 go install

Ad esempio, per eseguire un resize di prova basta digitare la seguente istruzione:

caire -in immaginediprova.jpg -out immaginediprovaprocessata.jpg

Via Caire/a>

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *