【图像评价】基于matlab无参考图像质量评价NIQE【含Matlab源码 681期】
一、无参考图像质量评价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期】相关推荐
- matlab无参考图像质量评价,无参考屏幕内容图像质量评价
1 引言 1.1 研究背景及意义 随着计算机和移动互联网技术的快速发展, 多屏互动[.视频游戏[.远程教育等多客户端通信系统也得到了飞速的发展.在这类系统中, 各类终端之间可以相互通信, 以实现屏幕内 ...
- 无参考图像质量评价之图像质量评价方法(一)[均方根误差、峰值信噪比、结构相似度]
图像质量评价在计算机视觉,人工智能,高清视频传输上面有很广泛的应用.目前,图像质量评价主要分为三个方向,有参考图像的质量评价,半参考的图像质量评价,以及无参考的图像质量评价.但是,个人认为,无参考图像 ...
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
- 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】
一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...
- 【Matlab车牌识别】停车计费系统【含GUI源码 735期】
一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
- 【Matlab语音分析】语音信号分析【含GUI源码 1718期】
一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...
- 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...
- 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...
最新文章
- 【最简洁】一句CSS3代码实现不规则自定义背景图拼接样式,多用于异形弹窗背景图
- ITK:翻译矢量图像
- thinkphp5中的系统文件上传和$_FILES用法区别
- leetcode 628. 三个数的最大乘积(排序)
- 浅谈数据中台安全体系构建思路
- layer 同步调用_YYText源码解读-YYText同步/异步渲染流程(一)—UIView与CALayer
- Python迭代器(Iterator)
- html鼠标点击事件代码,HTML onmousedown事件用法及代码示例
- Excel键盘快捷键大全
- 联想昭阳E43闪屏|屏幕有亮线|问题交流QQ群群号
- PE安装Win8纯净版教程【附Win864/32位系统下载地址以及系统激活工具和解压软件安装包】
- Android旗舰机与苹果,真正的旗舰之王!iPhone和国产安卓旗舰机,谁才能够当之无愧?...
- YOLOv3 ubuntu 配置及训练自己的VOC格式数据集
- 用MAC系统写C语言程序
- ajax传递数组到后台时为空,ajax传递数组,后台接收为null解决方法
- [2018 NUIST 程序设计竞赛] P1553 抑郁的竹鼠
- java毕业设计的创意项目众筹平台的设计与开发mybatis+源码+调试部署+系统+数据库+lw
- 物联网:物联网大数据平台的特性以及能力
- (自适应手机移动端)高端响应式路由器电子产品公司网站源码
- Linux批量装机PXE+Kickstart
热门文章
- 基础03 JVM到底在哪里?
- [转]Flex是什么?flex和flash是什么关系 ?
- Unity采用Forge Networking Remastered数据的远程传输Basic Moving Cube Example
- Better Explained 以通俗易懂的语言阐释数学
- Atitit 消息系统 mq 的艺术 attilax总结 v5 t88.docx Atitit 消息系统 mq 之道 attilax总结 1. 概念 broker topic producer
- Atitit httpclient 概述 rest接口 目录 1. Httpclient 利用http协议的client类库与技术方法	1 2. 功能用途 why	2 2.1. 上传下载文件	2
- Atitit 面试技术点最小化问题法总结 目录 1. Web 前端	1 1.1. Jq 常用操作哪些??	1 1.2. 查询后如何绑定后端数据到表格	2 1.3. 提交后怎么接受表单数据	2 2.
- 望眼科技:另类资产管理数据--夜光数据
- 深交所再推跨市场ETF交易模式创新,助力ETF发展
- 主数据——共享数据的核心,数据资产的灵魂