|||
最近实验中突然发现两幅图像在计算psnr时,uint8型和double型(均为0~255灰度)两种格式下的灰度图像计算结果差距很大,uint8型能飙到35左右,而double型的却在20多徘徊。今天看代码,终于明白怎么回事了:
psnr中的关键代码是下面这一行
res = 10 * log10(L^2 / mean2((hat - star).^2));
其中hat和star是要对比的两幅图像,如果为double型没有任何问题;但如果为uint8型,hat - star的结果仍然为uint8型,这样就把结果中的负值统一替换为0,自然误差就变小了,从而psnr飙升。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 06:18
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社