El siguiente código de Matlab realiza la compresión de imágenes utilizando los valores singulares. Para ello se toman los primeros m valores singulares de la siguiente expresión:
para crear la imagen comprimida:
y con
- Lo primero cargamos el archivo/imagen
>> img = imread(‘bet.jpg’);
- Transformamos la imagen a niveles de grises y a números reales
>> img1 = rgb2gray(img);
>> img2 = im2double(img1); - Utilizamos la SVD para generar (en este caso k=10)
>> aksvd(img2,10)
Los archivos que necesitas son:
- La función aksvd(img,k) que calcula la matriz : aksvd.m
- Las imagenes: bet.jpg, sciencemuseum.jpg