mn=numel(I); Imax=max(I(:)); psnr=10*log10(mn*double(Imax)^2/sum((im2double(I(:))-im2double(Iw(:))).^2)); peaksnr=psnr(im2uint8(Iw),I);
时间: 2023-10-27 11:06:29 浏览: 119
cell_double.rar_cell_cell double_cell类型转换_cell转double_文件转换为cell
5星 · 资源好评率100%
这段代码计算的是图像I和图像Iw之间的PSNR值和峰值信噪比。
首先,代码中的`numel(I)`计算了图像I中的像素数。`Imax`计算了图像I中的最大像素值。`im2double`函数将图像I和Iw转换为双精度浮点型,并且`sum((im2double(I(:))-im2double(Iw(:))).^2)`计算了它们之间的均方误差。`psnr`函数使用均方误差计算PSNR值,其中"mn\*double(Imax)^2/sum((im2double(I(:))-im2double(Iw(:))).^2)"部分是计算峰值信噪比所需的常量。
最后,`peaksnr`函数使用`im2uint8`函数将图像Iw转换为8位整型,并计算峰值信噪比。
阅读全文