二つの画像がどれだけ違うかを表す指標としてはPSNRやMSEやSSIMが用いられます。このうちPSNRとMSEは本質的には同じものです。
この二つの間で頻繁に変換を行うことがあり、よく式を忘れてめんどくいので、一行ですが関数化して残しておくことにしました。
誰かのささやかな助けになるといいです。
psnr_mse_conversion.py
import math
def mse2psnr(mse, max_val=1):
# max_val: 1 or 255
return 10 * (math.log10(max_val**2 / mse))
def psnr2mse(psnr, max_val=1):
return 1 / (10 ** (psnr / 10))
psnr2mse(30)
# 0.001
mse2psnr(0.001)
# 30.0