Mätning av bildkvalitet är avgörande inom olika områden som bildbehandling, komprimering och överföring. Två vanliga mätvärden som används är Peak Signal-to-Noise Ratio (PSNR) och Structural Similarity Index (SSIM). Denna artikel förklarar hur man beräknar dessa mätvärden i praktiken.

Förstå PSNR

PSNR mäter skillnaden mellan en komprimerad eller bearbetad bild och dess ursprungliga version. Det uttrycks i decibel (dB). Högre PSNR-värden indikerar bättre kvalitet.

För att beräkna PSNR, först beräkna Mean Squared Error (MSE) mellan de två bilderna:

MSE = (1/ (bredd × höjd) × δ ̧ | (I original - I processed) 2

Därefter beräknas PSNR som:

PSNR = 10 × log10 (MAX I2 / MSE)

där MAX I är det maximala möjliga pixelvärdet av bilden (t.ex. 255 för 8-bitars bilder).

Förstå SSIM

SSIM utvärderar likheten mellan två bilder baserade på luminans, kontrast och struktur. Det ger ett värde mellan -1 och 1, där 1 anger identiska bilder.

SSIM-indexet beräknas med hjälp av formeln:

SSIM = [(2μ xμ y + C1)(2| xy + C2)] / [(μ x2 + μ y2 + C1) (≤x2 + Δ y2 + C2)]

där μ x och μ y är medel för bilder x och y, α x2 och α y2 är varianserna, α xy är kovariansen, och C1, C2 är konstanter för att stabilisera divisionen.

Praktiska beräkningstips

Genomförandet av dessa beräkningar innebär vanligtvis att man använder bildbehandlingsbibliotek som OpenCV eller scikitbild i Python. Dessa bibliotek tillhandahåller funktioner för att beräkna PSNR och SSIM direkt, förenkla processen.

  • Se till att bilderna är i samma storlek och färgutrymme.
  • Använd flytande punkt representationer för noggrannhet.
  • Applicera korrekt normalisering om det behövs.
  • Använd befintliga biblioteksfunktioner för effektivitet.