Soluzioni dell’esercitazione 1
L. Verdoliva, M. Cagnazzo
30.03.07
Caricamento di immagini in formato grezzo
Ecco il codice che consente di caricare e visualizzare un’immagine in formato grezzo. Si noti che le prime righe della funzione costituiscono l’help in linea: in altre parole, digitando da linea di comando help vediraw, verranno visualizzate le prime righe di commento consecutive presenti nel file vediraw.m.
Convenzionalmente, la prima riga di help contiene il nome in maiuscolo della funzione e una descrizione sintetica. Questo perché il comando lookfor effettua la ricerca di una funzionalità desiderata leggendo solo la prima riga di help (cioè la prima riga di commento) di ogni funzione nel path. È allora consigliabile seguire sempre questa convenzione quando si scrivono le proprie funzioni.
Ancora, la seconda riga presenta un esempio di chiamata della funzione. Se sono possibili diverse sintassi (per esempio, se è possibile specificare un diverso numero di parametri d’ingresso o di uscita), la convenzione è di descrivere prima la sintassi più semplice e via via quelle più complesse.
function y = vediraw(nomefile,R,C,tipo);
%VEDIRAW carica visualizza un’immagine in formato grezzo
% Y = VEDIRAW(NOMEFILE,R,C,TIPO) carica l’immagine contenuta
% nel file "NOMEFILE"; R e C sono il numero di righe e di
% colonne; TIPO è il formato di dato, espresso secondo la
% convenzione di MATLAB: può essere ’uint8’, ’double’, ecc.
fid = fopen(nomefile,’r’);
if fid<0, %il file non esiste
fprintf(’Il file %s non esiste!\n’,nomefile);
else
y= fread(fid,[C R], tipo);
fclose(fid);
y=y’;
figure; imagesc(y); axis equal; colormap(gray(256));
end
Bitplane slicing
Il bitplane slicing si può ottenere utilizzando le funzioni bitget e bitset. Tuttavia, una soluzione più veloce ed elegante si ottiene utilizzando le operazioni di resto modulo 2 e di divisione intera (cioè floor e divisione).
(i−1)
Se consideriamo la rappresentazione in binario dei livelli di luminanza, la divisione intera per 2 equivale ad uno shift right di i-1 posizioni. Prendendo il resto modulo 2, se ne ricava il bit meno significativo, cioè 1
-
Elaborazione dei segnali multimediali - Esercizi risolti
-
Elaborazione dei segnali multimediali - Test risolti
-
Elaborazione dei segnali multimediali - Quesiti risolti
-
Elaborazione dei segnali multimediali - Test risolti