一、无参考图像质量评价NIQE简介

理论知识参考:通用型无参考图像质量评价算法综述

二、部分源代码

function  [mu_prisparam cov_prisparam]  = estimatemodelparam(folderpath,...blocksizerow,blocksizecol,blockrowoverlap,blockcoloverlap,sh_th)% Input
% folderpath      - Folder containing the pristine images
% blocksizerow    - Height of the blocks in to which image is divided
% blocksizecol    - Width of the blocks in to which image is divided
% blockrowoverlap - Amount of vertical overlap between blocks
% blockcoloverlap - Amount of horizontal overlap between blocks
% sh_th           - The sharpness threshold level
%Output
%mu_prisparam  - mean of multivariate Gaussian model
%cov_prisparam - covariance of multivariate Gaussian model% Example call%[mu_prisparam cov_prisparam] = estimatemodelparam('pristine',96,96,0,0,0.75);%----------------------------------------------------------------
% Find the names of images in the folder
current = pwd;
cd(sprintf('%s',folderpath))
names        = ls;
names        = names(3:end,:);%
cd(current)
% ---------------------------------------------------------------
%Number of features
% 18 features at each scale
featnum      = 18;
% ---------------------------------------------------------------
% Make the directory for storing the features
mkdir(sprintf('local_risquee_prisfeatures'))
% ---------------------------------------------------------------
% Compute pristine image features
for itr = 1:size(names,1)
itr
im               = imread(sprintf('%s\\%s',folderpath,names(itr,:)));
if(size(im,3)==3)
im               = rgb2gray(im);
end
im               = double(im);
[row col]        = size(im);
block_rownum     = floor(row/blocksizerow);
block_colnum     = floor(col/blocksizecol);
im               = im(1:block_rownum*blocksizerow, ...1:block_colnum*blocksizecol);
window           = fspecial('gaussian',7,7/6);
window           = window/sum(sum(window));
scalenum         = 2;
warning('off')feat = [];for itr_scale = 1:scalenummu                       = imfilter(im,window,'replicate');
mu_sq                    = mu.*mu;
sigma                    = sqrt(abs(imfilter(im.*im,window,'replicate') - mu_sq));
structdis                = (im-mu)./(sigma+1);feat_scale               = blkproc(structdis,[blocksizerow/itr_scale blocksizecol/itr_scale], ...[blockrowoverlap/itr_scale blockcoloverlap/itr_scale], ...@computefeature);
feat_scale               = reshape(feat_scale,[featnum ....size(feat_scale,1)*size(feat_scale,2)/featnum]);
feat_scale               = feat_scale';if(itr_scale == 1)
sharpness                = blkproc(sigma,[blocksizerow blocksizecol], ...[blockrowoverlap blockcoloverlap],@computemean);
sharpness                = sharpness(:);
endfeat                     = [feat feat_scale];im =imresize(im,0.5);end
function  quality = computequality(im,blocksizerow,blocksizecol,...blockrowoverlap,blockcoloverlap,mu_prisparam,cov_prisparam)% Input1
% im              - Image whose quality needs to be computed
% blocksizerow    - Height of the blocks in to which image is divided
% blocksizecol    - Width of the blocks in to which image is divided
% blockrowoverlap - Amount of vertical overlap between blocks
% blockcoloverlap - Amount of horizontal overlap between blocks
% mu_prisparam    - mean of multivariate Gaussian model
% cov_prisparam   - covariance of multivariate Gaussian model% For good performance, it is advisable to use make the multivariate Gaussian model
% using same size patches as the distorted image is divided in to% Output
%quality      - Quality of the input distorted image% Example call
%quality = computequality(im,96,96,0,0,mu_prisparam,cov_prisparam)% ---------------------------------------------------------------
%Number of features
% 18 features at each scale
featnum      = 18;
%----------------------------------------------------------------
%Compute features
if(size(im,3)==3)
im               = rgb2gray(im);
end
im               = double(im);
[row col]        = size(im);
block_rownum     = floor(row/blocksizerow);
block_colnum     = floor(col/blocksizecol);im               = im(1:block_rownum*blocksizerow,1:block_colnum*blocksizecol);
[row col]        = size(im);
block_rownum     = floor(row/blocksizerow);
block_colnum     = floor(col/blocksizecol);
im               = im(1:block_rownum*blocksizerow, ...1:block_colnum*blocksizecol);
window           = fspecial('gaussian',7,7/6);
window           = window/sum(sum(window));
scalenum         = 2;
warning('off')feat             = [];

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

【图像评价】基于matlab无参考图像质量评价NIQE【含Matlab源码 681期】相关推荐

  1. matlab无参考图像质量评价,无参考屏幕内容图像质量评价

    1 引言 1.1 研究背景及意义 随着计算机和移动互联网技术的快速发展, 多屏互动[.视频游戏[.远程教育等多客户端通信系统也得到了飞速的发展.在这类系统中, 各类终端之间可以相互通信, 以实现屏幕内 ...

  2. 无参考图像质量评价之图像质量评价方法(一)[均方根误差、峰值信噪比、结构相似度]

    图像质量评价在计算机视觉,人工智能,高清视频传输上面有很广泛的应用.目前,图像质量评价主要分为三个方向,有参考图像的质量评价,半参考的图像质量评价,以及无参考的图像质量评价.但是,个人认为,无参考图像 ...

  3. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  4. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  5. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  6. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  7. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  8. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  9. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  10. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

最新文章

  1. 【最简洁】一句CSS3代码实现不规则自定义背景图拼接样式,多用于异形弹窗背景图
  2. ITK:翻译矢量图像
  3. thinkphp5中的系统文件上传和$_FILES用法区别
  4. leetcode 628. 三个数的最大乘积(排序)
  5. 浅谈数据中台安全体系构建思路
  6. layer 同步调用_YYText源码解读-YYText同步/异步渲染流程(一)—UIView与CALayer
  7. Python迭代器(Iterator)
  8. html鼠标点击事件代码,HTML onmousedown事件用法及代码示例
  9. Excel键盘快捷键大全
  10. 联想昭阳E43闪屏|屏幕有亮线|问题交流QQ群群号
  11. PE安装Win8纯净版教程【附Win864/32位系统下载地址以及系统激活工具和解压软件安装包】
  12. Android旗舰机与苹果,真正的旗舰之王!iPhone和国产安卓旗舰机,谁才能够当之无愧?...
  13. YOLOv3 ubuntu 配置及训练自己的VOC格式数据集
  14. 用MAC系统写C语言程序
  15. ajax传递数组到后台时为空,ajax传递数组,后台接收为null解决方法
  16. [2018 NUIST 程序设计竞赛] P1553 抑郁的竹鼠
  17. java毕业设计的创意项目众筹平台的设计与开发mybatis+源码+调试部署+系统+数据库+lw
  18. 物联网:物联网大数据平台的特性以及能力
  19. (自适应手机移动端)高端响应式路由器电子产品公司网站源码
  20. Linux批量装机PXE+Kickstart

热门文章

  1. 基础03 JVM到底在哪里?
  2. [转]Flex是什么?flex和flash是什么关系 ?
  3. Unity采用Forge Networking Remastered数据的远程传输Basic Moving Cube Example
  4. Better Explained 以通俗易懂的语言阐释数学
  5. Atitit 消息系统 mq 的艺术 attilax总结 v5 t88.docx Atitit 消息系统 mq 之道 attilax总结 1. 概念 broker topic producer
  6. Atitit httpclient 概述 rest接口 目录 1. Httpclient 利用http协议的client类库与技术方法 1 2. 功能用途 why 2 2.1. 上传下载文件 2
  7. Atitit 面试技术点最小化问题法总结 目录 1. Web 前端 1 1.1. Jq 常用操作哪些?? 1 1.2. 查询后如何绑定后端数据到表格 2 1.3. 提交后怎么接受表单数据 2 2.
  8. 望眼科技:另类资产管理数据--夜光数据
  9. 深交所再推跨市场ETF交易模式创新,助力ETF发展
  10. 主数据——共享数据的核心,数据资产的灵魂