Main Content

niqe

自然图像质量评估方法 (NIQE) 无参考图像质量分数

说明

示例

score = niqe(A) 使用自然图像质量评估方法 (NIQE) 计算图像 A 的无参考图像质量分数。niqeA 与基于自然场景图像计算的默认模型进行比较。分数越小,表示感知质量越好。

示例

score = niqe(A,model) 使用自定义模型计算图像质量分数。

示例

全部折叠

使用默认模型计算自然图像及其失真版本的 NIQE 分数。

将图像读入工作区。创建含噪和模糊失真的图像副本。

I = imread('lighthouse.png');
Inoise = imnoise(I,'salt & pepper',0.02);
Iblur = imgaussfilt(I,2);

显示图像。

figure
montage({I,Inoise,Iblur},'Size',[1 3])
title('Original Image | Noisy Image | Blurry Image')

使用默认模型计算每个图像的 NIQE 分数。显示分数。

niqeI = niqe(I);
fprintf('NIQE score for original image is %0.4f.\n',niqeI)
NIQE score for original image is 2.5455.
niqeInoise = niqe(Inoise);
fprintf('NIQE score for noisy image is %0.4f.\n',niqeInoise)
NIQE score for noisy image is 10.8770.
niqeIblur = niqe(Iblur);
fprintf('NIQE score for blurry image is %0.4f.\n',niqeIblur)
NIQE score for blurry image is 5.2661.

原始未失真图像的感知质量最好,因此 NIQE 分数最低。

将一组自然图像加载到一个图像数据存储中。Image Processing Toolbox™ 的 imdata 目录中附带这些图像。

setDir = fullfile(toolboxdir('images'),'imdata');
imds = imageDatastore(setDir,'FileExtensions',{'.jpg'});

使用图像数据存储训练自定义 NIQE 模型。

model = fitniqe(imds);
Extracting features from 33 images.
.....
Completed 14 of 33 images.  Time: Calculating...
...
Done.

读取一个自然场景的图像。显示图像。

I = imread('car1.jpg');
imshow(I)

使用自定义模型计算图像的 NIQE 分数。显示分数。

niqeI = niqe(I,model);
fprintf('NIQE score for the image is %0.4f.\n',niqeI)
NIQE score for the image is 2.6700.

输入参数

全部折叠

输入图像,指定为二维灰度图像或 RGB 图像。

数据类型: single | double | int16 | uint8 | uint16

图像特征的自定义模型,指定为 niqeModel 对象。model 来源于自然场景统计。

输出参量

全部折叠

无参考图像质量分数,以非负标量形式返回。score 的值越低,说明图像 A 相对输入 model 的感知质量越好。

数据类型: double

算法

NIQE 测量从图像 A 计算得到的基于 NSS 的特征与从训练模型的图像数据库得到的特征之间的距离。这些特征建模为多维高斯分布。

参考

[1] Mittal, A., R. Soundararajan, and A. C. Bovik. "Making a Completely Blind Image Quality Analyzer." IEEE Signal Processing Letters. Vol. 22, Number 3, March 2013, pp. 209–212.

版本历史记录

在 R2017b 中推出

另请参阅

函数

对象