Decomposição SVD
Engº Doraci Gabriel da Rosa – Junho/2001
INTRODUÇÃO TEÓRICA
Decomposição em Valores Singulares – SVD – é a decomposição de uma matriz A: m x n em UDVT, onde U: m x m e V: n x n são matrizes ortogonais, e D: m x n é uma matriz diagonal formada pelos valores singulares de A, em ordem decrescente: σ1 ≥ σ2 ≥
... ≥ σr > 0 = σr+1 ... σn. Os valores singulares de A são os autovalores da matriz ATA.
Podemos obter uma aproximação de A usando SVD. Seja A: m x n, m ≥ n com rank(A) = r ≤ n, e U, D, V sua fatoração SVD.
A = UDVT
A = u1d1v1T + u2d2v2T + ... + urdrvrT + ... + undnvnT
A = σ1u1v1T + σ2u2v2T + ... + σrurvrT
Para cada k = 1, 2, ..., r, a matriz Ak é a matriz que está mais próxima, na norma-2, de A, dentre todas as matrizes m x n de posto k.
Ak = σ1u1v1T + σ2u2v2T + ... + σkukvkT
Doraci Gabriel da Rosa
1/9
SVD
RECONSTRUÇÃO DE IMAGEM
O sistema final é fomado pelos aquivos em anexo: imagem.m – programa principal ap_cinza.m – programa-função das aproximações de imagem em tons de cinza ap_color.m – programa-função das aproximações de imagem colorida dig_foto.m – programa que lê e obtém a matriz de um arquivo de imagem bmp ou jpg DESCRIÇÃO DA 1ª EXPERIÊNCIA
Nesse primeiro contato com uso do Matlab na Reconstrução de Imagem obtive a matriz A, dos códigos de cores, manualmente. Primeiro abri o arquivo da imagem igor01.bmp (em tons de cinza) num editor de arquivo binário, converti os códigos RGB da seqüência dos pixels da imagem de hexadecimal para decimal, de 0 a 255, copiei e colei no Word (foto.txt). Filtrei apenas os 57460 (matriz 260 x 221) códigos da imagem
(foto_2.txt), enviei para o Excel para inverter a seqüência das linhas da matriz (foto.xls), e finalmente, copiei a matriz no arquivo foto.m. O aplicativo Corel Photo-Paint me auxiliou na decodificação do arquivo binário.
DESCRIÇÃO DA 2ª EXPERIÊNCIA
Após saber do comando imread do Matlab, investi num sistema que