一、RMSE基本定义

MSE全称为“Root Mean Square Error”,中文意思即为均方根误差,是衡量图像质量的指标之一。计算原理为真实值与预测值的差值的平方然后求和再平均,最后开根号,公式如下:

RMSE值越小,说明图像越相似。计算RMSE有四种方法:

方法一:计算RGB图像三个通道每个通道的MSE值再求平均值,最后开根号即可

方法二:直接使用matlab的内置函数immse()(注意该函数将所有图像当成灰度图像处理),再开根号即可

方法三:判断图像的维度,若是三维即为RGB图像求其RMSE,若是二维即为灰度图像求其RMSE

方法四:同方法三,对RMSE进行归一化处理

二、matlab实现RMSE

1、方法一:rgbRMSE.m

function rmsevalue= rgbRMSE(image1,image2)
% image1和image2大小相等
row=size(image1,1); % 图像的长
col=size(image1,2); % 图像的宽
image1=double(image1);
image2=double(image2);
MSE_R=double(zeros(row,col));
MSE_G=double(zeros(row,col));
MSE_B=double(zeros(row,col));
image1_R=image1(:,:,1);  % R通道
image1_G=image1(:,:,2);  % G通道
image1_B=image1(:,:,3);  % B通道
image2_R=image2(:,:,1);
image2_G=image2(:,:,2);
image2_B=image2(:,:,3);
% 计算RGB图像三个通道每个通道的MSE值再求平均值
for i=1:rowfor j=1:colMSE_R(i,j)=(image1_R(i,j)-image2_R(i,j))^2;MSE_G(i,j)=(image1_G(i,j)-image2_G(i,j))^2;MSE_B(i,j)=(image1_B(i,j)-image2_B(i,j))^2;end
end
MSE_RGB=sum(MSE_R(:))+sum(MSE_G(:))+sum(MSE_B(:)); % 将RGB三个通道计算的MSE值相加,注意(:)的用法
rmsevalue=sqrt(MSE_RGB/(row*col)); % 在MSE的基础上开根号
end

2、方法二:grayRMSE.m

function rmsevalue = grayRMSE(image1,image2)
% image1和image2大小相等
row=size(image1,1); % 图像的长
col=size(image1,2); % 图像的宽
image1=double(image1);
image2=double(image2);
rmsevalue=sqrt(sum(sum((image1-image2).^2))/(row*col)); % 在MSE的基础上开根号
end

3、方法三:rgbgrayRMSE.m

function rmsevalue = rgbgrayRMSE(image1,image2)
% image1和image2大小相等
row=size(image1,1); % 图像的长
col=size(image1,2); % 图像的宽% 一定要注意转为double类型
image1=double(image1);
image2=double(image2);dim=length(size(image1));% 图像的维度
if dim==2    % 灰度图像只有二维,彩色图像有三维sum_mse=sum(sum((image1-image2).^2));% 两次使用sum()函数,第一次使用sum将每行值相加,第二次使用sum将每行值的和再次相加
elsesum_mse=sum(sum(sum((image1-image2).^2)));% 三次使用sum()函数,第一次使用sum将每行值相加,第二次使用sum将每行值的和再次相加,第三次使用sum将每个通道值的和再次相加
end
rmsevalue=sqrt(sum_mse/(row*col));
end

4、方法四:NRMSE.m

function nrmsevalue = NRMSE(image1,image2)% image1和image2大小相等
row=size(image1,1); % 图像的长
col=size(image1,2); % 图像的宽% 一定要注意转为double类型
image1=double(image1);
image2=double(image2);dim=length(size(image1));% 图像的维度if dim==2    % 灰度图像只有二维,彩色图像有三维sum_mse1=sum(sum((image1-image2).^2));% 两次使用sum()函数,第一次使用sum将每行值相加,第二次使用sum将每行值的和再次相加sum_mse2=sum(sum(image1.^2));
elsesum_mse1=sum(sum(sum((image1-image2).^2)));% 三次使用sum()函数,第一次使用sum将每行值相加,第二次使用sum将每行值的和再次相加,第三次使用sum将每个通道值的和再次相加sum_mse2=sum(sum(sum(image1.^2)));
end
nrmsevalue=sqrt(sum_mse1/(row*col))/sqrt(sum_mse2/(row*col));
end

5、主函数main.m

clc;clear;close all;
rgbimage=imread('ultraman.jpg');
attack_rgbimage=imnoise(rgbimage,'gaussian',0,0.001);
figure(1),
subplot(121),imshow(rgbimage);
title('原始图像');
subplot(122),imshow(attack_rgbimage);
title('噪声攻击图像');grayimage=rgb2gray(imread('ultraman.jpg'));
attack_grayimage=imnoise(grayimage,'gaussian',0,0.01);
figure(2),
subplot(121),imshow(grayimage);
title('原始图像');
subplot(122),imshow(attack_grayimage);
title('噪声攻击图像');
% =============rgbRMSE.m============= %
rmsevalue1 = rgbRMSE(rgbimage,attack_rgbimage);
disp('RGB图像的均方根误差:');
disp(rmsevalue1);
% =============immse============= %
rmsevalue2 = sqrt(immse(rgbimage,attack_rgbimage)); % 在使用matlab内置函数immse的基础上开根号
disp('matlab函数的均方误差:');
disp(rmsevalue2);
% =============grayRMSE.m============= %
rmsevalue3 = grayRMSE(grayimage,attack_grayimage);
disp('灰度图像的均方根误差:');
disp(rmsevalue3);
% =============rgbgrayRMSE.m============= %
rmsevalue4 = rgbgrayRMSE(rgbimage,attack_rgbimage);
disp('RGB图像的均方根误差:');
disp(rmsevalue4);rmsevalue5 = rgbgrayRMSE(grayimage,attack_grayimage);
disp('灰度图像的均方根误差:');
disp(rmsevalue5);
% =============NRMSE.m============= %
rmsevalue6 = NRMSE(rgbimage,attack_rgbimage);
disp('RGB图像的归一化均方根误差:');
disp(rmsevalue6);rmsevalue7 = NRMSE(grayimage,attack_grayimage);
disp('灰度图像的归一化均方根误差:');
disp(rmsevalue7);

三、实现结果分析

1、输出结果

RGB图像:

对应灰度图像:

各种方法输出的RMSE值:

2、结果分析

1、注意每次运行主函数main.m文件,输出的RMSE值都会有细微差别,可以对比上下两张图。

2、仅以高斯噪声的参数为讨论,我们将主函数main.m文件椒盐噪声的方差改为0.001,可以与上方得到方差为0.01的RMSE结果进行对比,可以看出得到的RMSE要小很多,表示图像质量更好。


3、利用matlab的内置函数immse计算的灰度图像RMSE比我们自己写的方法计算的灰度图像RMSE要大一些。

4、本质上,方法三是方法一和方法二的结合体。

图像处理之图像质量评价指标RMSE(均方根误差)相关推荐

  1. 图像处理之图像质量评价指标MSE(均方误差)

    一.MSE基本定义 MSE全称为"Mean Square Error",中文意思即为均方误差,是衡量图像质量的指标之一.计算原理为真实值与预测值的差值的平方然后求和再平均,公式如下 ...

  2. 【图像处理】——图像质量评价指标信噪比(PSNR)和结构相似性(SSIM)(含原理和Python代码)

    目录 一.信噪比(PSNR) 1.信噪比的原理与计算公式 2.Python常规代码实现PSNR计算 3.TensorFlow实现PSNR计算 4.skimage实现PSNR计算 5.三种方法计算的结果 ...

  3. 无参考图像质量评价指标

    非参考图像质量评价指标 主要列举五个非参考图像质量评价指标,具体说明可参考<基于Retinex模型和多尺度融合的低光照图像增强技术>Github项目中的IQA说明和效果 链接:https: ...

  4. 图像质量评价指标: PSNR 和 SSIM

    PSNR: Image quality assessment: from error visibility to structural similarity SSIM: Image Quality A ...

  5. 图像质量评价指标FID、LPIPS、NIQE及其代码

    文章目录 FID LPIPS NIQE FID FID的全称是Fréchet Inception Distance,用于衡量两个多元正态分布的距离,数值越小越好.具体的,FID使用Inception ...

  6. 图像质量评价指标PSNR和SSIM

    由于是从Word文档直接复制过来,其中格式如果乱码或者不通顺,请评论区告知我 参考链接: https://blog.csdn.net/dxpqxb/article/details/85071338 h ...

  7. 均方误差越大越好_常用度量--MAE(平均绝对误差)和RMSE(均方根误差)

    常用度量--MAE(平均绝对误差)和RMSE(均方根误差) 发布时间:2018-09-29 10:46, 浏览次数:3512 , 标签: MAE RMSE <>常用度量–MAE(平均绝对误 ...

  8. 模型预测精度(数值regression)评价指标 - RMSE, MAE, MAPE Bias哪个指标更好?Forecast KPIs: RMSE, MAE, MAPE Bias

    模型预测精度(数值regression)评价指标 - RMSE, MAE, MAPE & Bias哪个指标更好? 在销量/需求预测时常用的一些模型评价指标,尤其是在supplychain销量预 ...

  9. 两种常用的参考图像质量评价指标——超分辨率(五)

    两种常用的参考图像质量评价指标 PSNR(Peak Signal to Noise Ratio)峰值信噪比: 峰值信噪比(PSNR)是一个表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的 ...

最新文章

  1. 测试角度的并发和幂等问题总结
  2. RocketMQ CommitLog And Index
  3. Zabbix数据库需要多大硬盘
  4. 广搜--(搜索的第一道题)图像有用区域
  5. spring boot原理_SpringBoot-02-原理初探之主启动类
  6. sht20温湿度传感器原理图_温湿度传感器在孵化行业怎么应用
  7. SilverLight4.0数据验证IDataErrorInfo, INotifyDataErrorInfo[转]
  8. 欢乐纪中A组周六赛【2019.3.23】
  9. 命令行 java文本编辑工具 重载 内存区域 栈 堆
  10. oracle 序列验证脚本,oracle 生成序列脚本
  11. CSS可以实现可视化设计吗?要如何实现?
  12. Windows Server 2008密码重设盘
  13. 如何确定C语言中数组的大小?
  14. PIE SDK 坐标系创建、定义、对比
  15. 类别的作用?继承和类别在实现中有何区别
  16. linux攻击主机msfconsole,关于利用kali linux2017.2中MSFCONSOLE 利用MS17-010漏洞发起攻击的坑...
  17. 利用kali Linux破解WiFi密码
  18. 中国人在发表英文论文时汉字姓名究竟应该如何写?
  19. sensor曝光量和曝光行的区别_如何理解 ISO、快门、光圈、曝光这几个概念?
  20. 基于Linux下的VIC使用(1)VIC部分(Fortran版本)

热门文章

  1. css文字颜色渐变的3种实现
  2. 快速理解宽带调频中的贝塞尔函数
  3. Joinquant : 不限语言·极速调取 | JQData HTTP 接口正式上线
  4. Python实现显著性检验delong
  5. rrd文件及rrd文件与实际数据的对比研究。
  6. Gogs集成LDAP
  7. 深入理解mongoose
  8. php 超轻量级 博客系统,超轻量级个人博客 pblog | 码农软件 - 码农网
  9. MODBUS转PROFINET(PROFINET转MODBUS)协议转换器转换模块网关网桥总线桥在储油行业的应用配置方法(上)
  10. 《计算机组成原理》第五章:处理器