一、图像质量评价

图像质量评价对图像处理算法的可行性分析以及某类算法达成效果的比较都起着非常重要的指导作用。随着图像处理技术的发展,对于图像质量评价的研究也日益深入,新的评价指标和评价算法不断涌现,共同推动了图像质量评价的进步。

图像质量评价的方法大致可分为两类:主观评价和客观评价。主观评价是由参与者对图像质量进行直接评价,是图像质量评价最直观的方法。但由于个别人对于图像的理解差异性很大,主观评价方法如果要达到预期的评价效果,需要有多人的参与和判断,以群体的形式来消除个体差异性,这就导致主观评价方法受到很大的约束和限制,只能在某些特定的场合下采用。

客观评价通过建立数学模型来模拟人的视觉系统,根据数学公式的推导,采用相应的算法对图像质量进行评价。按照是否需要原始图像作为参考信息,客观评价方法又分为无参考 (No-reference, NR) 评价、部分参考 (Reduced-Reference, RR) 评价和全参考 (Full-Reference, FR) 评价三类。

常见的主观评价和客观评价的分类如图1所示。

图1 图像质量评价分类
在客观评价中的全参考评价模式下,关于原始图像和处理后的图像之间的比对,通常会采用峰值信噪比 (PSNR) 进行衡量。PSNR从统计学的角度来衡量原始图像和处理后图像的关系,计算原始图像和处理后图像的对应像素点灰度值之间的差异。对于尺寸为M×N的图像,PSNR定义如下:

其中,处理前图像在坐标空间 (i, j) 的灰度值使用R (i, j) 表示,处理后图像在坐标空间 (i, j) 的灰度值使用F (i, j) 表示。通过计算得出的PSNR值越大,表示处理后图像与原始图像之间的失真越小,图像处理后的质量越好。从公式 (1) 可以看出,PSNR计算非常简单,但是其仅仅是基于统计学的角度来考虑处理后图像和原始图像对应像素点灰度值之间的差异,忽略了图片内部像素点之间的关系,这就导致其会和主观评价产生一定的误差。

2004年,Wang等人提出了结构相似度 (SSIM) 方法,将图像内部的结构特征和图像的亮度、图像的对比度一起作为重要的参数。因为其考虑了图像的内部结构在人眼视觉上的差异,该方法能和主观评价取得较为一致的结果。假设原始图像和处理后图像分别定义为X和Y,则图像亮度信息L (X, Y) 、图像对比度信息C (X, Y) 和图像结构信息S (X, Y) 分别计算如下:

其中图像X的均值使用μX表示,图像Y的均值使用μY表示,图像X的标准差使用σX表示,图像Y的标准差使用σY表示,图像X与图像Y的协方差使用σXY表示,而公式中出现的C1、C2和C3是为计算的可靠性而定义的常数。综合公式 (2) 、公式 (3) 和公式 (4) ,定义两幅图像的SSIM如下:

其中α、β、γ是为了调整亮度信息、对比度信息和结构信息三者所占比重而设定的参数。通过以上公式计算出的SSIM (X, Y) 的取值在0和1之间,越接近1,表示处理后的图像和原始图像失真程度越小。

和PSNR进行对比,SSIM考虑了图像内部的结构相关信息,更加符合人类视觉对图像特征的理解,因此其应用更加广泛。

二、部分源代码

function varargout = IQA(varargin)

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @IQA_OpeningFcn, …
‘gui_OutputFcn’, @IQA_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before IQA is made visible.
function IQA_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

ResetButton_Callback(hObject, eventdata, handles)

% — Outputs from this function are returned to the command line.
function varargout = IQA_OutputFcn(hObject, eventdata, handles)

% Get default command line output from handles structure
varargout{1} = handles.output;

% — Executes on button press in BrowseImage.
function BrowseImage_Callback(hObject, eventdata, handles)

ResetButton_Callback(hObject, eventdata, handles);

global image;
[filename pathname] = uigetfile({‘.jpg’;'.bmp’;‘.tif’;'.png’},‘File Selector’);
x = strcat(pathname, filename);
image=imread(x);
axes(handles.axes1);
imshow(image);

% — Executes on button press in AddNoise.
function AddNoise_Callback(hObject, eventdata, handles)

global image;
global addnoisyimage;
global mean;
global variance;
global AdditiveNoiseMenu;
if (strcmp(AdditiveNoiseMenu, ‘Gaussian’))
addnoisyimage = imnoise(image, ‘Gaussian’, mean, variance);
elseif (strcmp(AdditiveNoiseMenu, ‘Poisson’))
addnoisyimage = imnoise(image, ‘Poisson’);
elseif (strcmp(AdditiveNoiseMenu, ‘Select Additive Noise Type’))
addnoisyimage = image;
end
axes(handles.axes2);
imshow(addnoisyimage);

% — Executes on button press in MultiNoise.
function MultiNoise_Callback(hObject, eventdata, handles)
global noisedensity;
global variance_multi;
global image;
global multinoisyimage;
global MultiplicativeNoiseMenu;
if (strcmp(MultiplicativeNoiseMenu, ‘Salt & Pepper’))
multinoisyimage = imnoise(image, ‘salt & pepper’, noisedensity);
elseif (strcmp(MultiplicativeNoiseMenu, ‘Speckle’))
multinoisyimage = imnoise(image, ‘speckle’, variance_multi);
elseif (strcmp(MultiplicativeNoiseMenu, ‘Select Multiplicative Noise’))
multinoisyimage = image;
end

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韦忠亮,许光宇,张顺香.基于MATLAB的去雾图像质量评价系统[J].黑龙江工业学院学报(综合版). 2019,19(08)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

【图像评价】基于matlab GUI图像评价系统【含Matlab源码 2185期】相关推荐

  1. 【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI杨氏双缝干涉[含Matlab源码 001期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  2. 基于JAVA校园爱心志愿系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA校园爱心志愿系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA校园爱心志愿系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  3. 基于JAVA学生用品采购系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA学生用品采购系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA学生用品采购系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  4. 基于JAVA体育用品购物系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA体育用品购物系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA体育用品购物系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: 项目架构 ...

  5. 基于JAVA公立医院绩效考核系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA公立医院绩效考核系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA公立医院绩效考核系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 ...

  6. 基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 本源码技术栈: ...

  7. 基于Java毕业设计校园外卖系统Web端源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计校园外卖系统Web端源码+系统+mysql+lw文档+部署软件 基于Java毕业设计校园外卖系统Web端源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S ...

  8. 基于java大学生创业众筹系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java大学生创业众筹系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java大学生创业众筹系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 本源码技术栈 ...

  9. 基于JAVA校园快递联盟系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA校园快递联盟系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA校园快递联盟系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: 项目架构 ...

  10. 基于JAVA网上蛋糕订购系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA网上蛋糕订购系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA网上蛋糕订购系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: 项目架构 ...

最新文章

  1. Solr索引和基本数据操作
  2. 一图读懂《“十四五”软件和信息技术服务业发展规划》
  3. 独家 | 一份数据工程师必备的学习资源,干货满满(附链接)
  4. c++ QT学习笔记
  5. python3.6卸载教程_Python3.6安装卸载、执行命令、执行py文件的方法详解
  6. 链接服务器 因为它不存在或者您没有所需的权限。处理
  7. 双目相机定位3d python_用深度学习实现 2D 到 3D 的转换
  8. TF32A09硬件加密芯片
  9. java if if else语句_Java if else条件判断语句用法
  10. 基于stm32F4的项目总结:控制层设计(四)直流有刷电机驱动原理及驱动器选型
  11. 数学建模——主成分分析入门及SPSS使用
  12. python怎么算二元一次方程_Python简单实现二元一次方程求根
  13. java计算机毕业设计智能外包管理平台源码+数据库+系统+lw文档
  14. PAT乙级(Basic Level)练习题 星际密码[斐波那契][打表]
  15. python文件批量改名
  16. 西门子1500PLC机器人焊接程序(西门子PLC+西门子触摸屏)
  17. java 最短遍历路径_凯文培根游戏的最短路径图遍历
  18. 凤姐和她的传销币们-千氪
  19. np.cosh没有分配_Python中带有示例的math.cosh()方法
  20. C语言打印cav,最近大热的Cav Empt(C.E),你了解?

热门文章

  1. 输入一行字符,分别统计出其中的英文字母、空格、数字、和其他字符个数
  2. python选择文件夹,并自动发送这个文件夹下的所有文件(以附件的形式)至指定邮箱(通过163邮箱)
  3. 使用ssh无密码登录
  4. 【OJ每日一练】1090 - 基因牛
  5. WinForm实现股票实时查询小程序
  6. CDOJ 1292 卿学姐种花(分块)
  7. AI如何绘制黄金比例风扇叶
  8. ubuntu中是可以看迅雷看看
  9. windws 8 应用小技巧(11-15)
  10. html邮件加入退订链接,Word邮件和网页技巧:取消自动转换的超级链接-word技巧-电脑技巧收藏家...