基于NIQE算法的图像无参考质量评价算法matlab仿真

简介: 基于NIQE算法的图像无参考质量评价算法matlab仿真

1.算法运行效果图预览

2f89a6ee01e55fe09b75eacdc56cb87d_82780907_202402132215190139397978_Expires=1707834319&Signature=BsOrncqyJfgvanWi%2FQm85%2Fp2stA%3D&domain=8.jpeg
7484e62d905ce94c654037fafc110858_82780907_202402132215190201151849_Expires=1707834319&Signature=Ud4Wt8IzfpOm9Tlc4uFHUn8z6GY%3D&domain=8.jpeg

2.算法运行软件版本
MATLAB2022a

3.算法理论概述
NIQE(Naturalness Image Quality Evaluator)算法是一种无参考图像质量评价算法,旨在评估图像的自然度,即图像看起来是否像自然场景。 NIQE基于一组“质量感知”特征,并将其拟合到MVG模型中。质量感知特征源于一个简单但高度正则化的NSS模型。然后,将给定的测试图像的NIQE指标表示为从测试图像中提取的NSS特征的MVG模型与从自然图像语料中提取的质量感知特征的MVG模型之间的距离。整个过程由五步操作完成:

3.1 空域NSS特征提取

6e2454b95ee8787f34ccc5bb2f7ee04d_82780907_202402132214020794204708_Expires=1707834242&Signature=NKjovcOYcL5Z5Ho1QWIiPmcalrA%3D&domain=8.png

3.2 图像块选取

   一旦图像的系数由(1)式计算出,整张图像会被分割成P × P P\times{P}P×P的块。然后从每个块的系数中计算出特殊的NSS特征。方差(3)在之前的基于NSS的图片分析中常常被忽视。但是它在结构化图片信息上有丰富的内容。这些内容可以被用来量化局部图片的锐利度。(从美学上认为一幅图片越锐利它的成像效果会越好,平滑模糊代表一种视觉信息的潜在损失。)将P × P P\times{P}P×P的图像块用b = 1 , 2 , . . . , B b=1,2,...,Bb=1,2,...,B做标记,再用一种直接的方法计算每一块b bb平均局部偏移范围:

e805bb5323492523bae518375d852df5_82780907_202402132213520451300576_Expires=1707834232&Signature=ZYKh%2Fyv4p6r5bwdelVi8j%2ByD6b8%3D&domain=8.png

3.3 MVG模型
通过将自然图像块与MVG模型密度函数拟合,可以得到一个简单的NSS特征模型,MVG模型密度函数为:

983685b1cf6dde719a67741a829b279f_82780907_202402132212380668437017_Expires=1707834158&Signature=pwM%2BiMux54vdfNIN8OVkleBAarg%3D&domain=8.png

3.4 NIQE指标
NIQE分数的计算,是通过计算待测图片MVG模型参数和上面得到的自然图片MVG模型参数的距离来得到(如下式)。不过选择patch的准则(1)不应用到待测图片上,而只用在上面自然图片模型参数估计上。原因如下:

af2b16536018b28dc0505f731eeffeb4_82780907_202402132212270933848764_Expires=1707834147&Signature=agwkykmHoIneDdjzPDMjw9FVtsc%3D&domain=8.png

4.部分核心程序

clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default')

Rbk     = 48;
Cbk     = 48;
Rlap    = 0;
Clap    = 0;
%加入不同的噪声,估计图像质量
im1     = imread('1.bmp');
quality1= func_quality(im1,Rbk,Cbk,Rlap,Clap);

im2     = imnoise(im1,'salt & pepper',0.001); %加入不同的噪声,估计图像质量
quality2= func_quality(im2,Rbk,Cbk,Rlap,Clap);


im3     = imnoise(im1,'salt & pepper',0.01); %加入不同的噪声,估计图像质量
quality3= func_quality(im3,Rbk,Cbk,Rlap,Clap);

im4     = imnoise(im1,'salt & pepper',0.05); %加入不同的噪声,估计图像质量
quality4= func_quality(im4,Rbk,Cbk,Rlap,Clap);

im5     = imnoise(im1,'salt & pepper',0.1); %加入不同的噪声,估计图像质量
quality5= func_quality(im5,Rbk,Cbk,Rlap,Clap);

im6     = imnoise(im1,'salt & pepper',0.25); %加入不同的噪声,估计图像质量
quality6= func_quality(im6,Rbk,Cbk,Rlap,Clap);


figure;
subplot(231);
imshow(im1);
title(['质量估计值:',num2str(100/quality1)]);

subplot(232);
imshow(im2);
title(['质量估计值:',num2str(100/quality2)]);

subplot(233);
imshow(im3);
title(['质量估计值:',num2str(100/quality3)]);

subplot(234);
imshow(im4);
title(['质量估计值:',num2str(100/quality4)]);

subplot(235);
imshow(im5);
title(['质量估计值:',num2str(100/quality5)]);

subplot(236);
imshow(im6);
title(['质量估计值:',num2str(100/quality6)]);
相关文章
|
8天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
17天前
|
机器学习/深度学习 自然语言处理 算法
|
1天前
|
数据采集 算法 数据可视化
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
|
3天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
13 5
|
4天前
|
算法 计算机视觉 异构计算
基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证
该内容展示了FPGA实现图像累积直方图的算法。使用Vivado2019.2和matlab2022a,通过FPGA的并行处理能力优化图像处理。算法基于像素值累加分布,计算图像中像素值小于等于特定值的像素个数。核心代码为`test_image`模块,读取二进制图像文件并传递给`im_hist`单元,生成直方图和累积直方图。
|
6天前
|
机器学习/深度学习 算法 数据挖掘
基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
该文档介绍了使用MATLAB2022A中PSO优化算法提升时间序列预测模型性能的过程。PSO优化前后对比显示了优化效果。算法基于CNN、LSTM和Attention机制构建CNN-LSTM-Attention模型,利用PSO调整模型超参数。代码示例展示了PSO的迭代优化过程及训练、预测和误差分析环节。最终,模型的预测结果以图形形式展示,并保存了相关数据。
|
12天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
16 0
|
15天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
286 9
|
27天前
雷达模糊函数及MATLAB仿真(三)
雷达模糊函数及MATLAB仿真
15 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。

热门文章

最新文章