A method to evaluate the quality of the compressed image, similar to the SNR. For more information, see here.
Code:
Function main img1_imread('lena.jpg '); [m n] = size (IMG); imgn = imresize (IMG, [floor (M/8) floor (N/8)]); imgn = imresize (imgn, [m n]); IMG = double (IMG); imgn = double (imgn); TMP = []; for I = 9: 8: M for J = 9: 8: n tmp = [tmp ssim (IMG (I-8: I, j-8: J), imgn (I-8: I, j-8: J)]; end end mssim = mean (TMP) function Re = SSIM (x, y) % The returned value is between 0 and 1. The larger the value, the better the quality. X = double (x); y = double (y); UX = mean (x); Uy = mean (y )); sigma2x = mean (X-UX ). ^ 2); sigma2y = mean (Y-uy ). ^ 2); sigmaxy = mean (X-UX ). * (Y-uy); k1 = 0.01; k2 = 0.03; L = 255; C1 = (K1 * l) ^ 2; C2 = (K2 * l) ^ 2; C3 = c2/2; L = (2 * UX * Uy + C1)/(UX * UX + Uy * Uy + C1 ); C = (2 * SQRT (sigma2x) * SQRT (sigma2y) + C2)/(sigma2x + sigma2y + C2); s = (sigmaxy + C3)/(SQRT (sigma2x) * SQRT (sigma2y) + C3); Re = L * C * s; endend