【图像评价】基于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_rownumblocksizerow, …
1:block_colnum
blocksizecol);
window = fspecial(‘gaussian’,7,7/6);
window = window/sum(sum(window));
scalenum = 2;
warning(‘off’)

feat = [];

for itr_scale = 1:scalenum

mu = 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(😃;
end

feat = [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_rownumblocksizerow,1:block_colnumblocksizecol);
[row col] = size(im);
block_rownum = floor(row/blocksizerow);
block_colnum = floor(col/blocksizecol);
im = im(1:block_rownumblocksizerow, …
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]杨璐,王辉,魏敏.基于机器学习的无参考图像质量评价综述[J].计算机工程与应用. 2018,54(19)

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

  • 3
    点赞
  • 12
    收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值