IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 图像质量的客观评价指标——matlab实现MSE、RMSE、SNR、PSNR,SSIM,熵值计算 -> 正文阅读

[人工智能]图像质量的客观评价指标——matlab实现MSE、RMSE、SNR、PSNR,SSIM,熵值计算


学习一下图像拼接会用到的评价指标

MSE、RMSE、PSNR,SSIM,熵值分别是什么

MSE:Mean Square Error,均方误差,能用来计算待评价图像和原始图像之间的差异。对于拼接来说,值越大说明质量越差。
RMSE:均方根误差。同样,值越大说明拼接效果越差。
SNR:信噪比,信噪比越大,说明混在信号里的噪声越小,采集到的的信号质量越高
PSNR:峰值信噪比
SSIM:结构相似度,值越大越相似,且最大值为1
熵值:反映了图像中平均信息量的多少,在图像拼接融合中,熵值越大,说明拼接融合效果越好。

MSE均方误差

如下公式,均方误差是值与参数真值之差平方的期望值(均值)。
在图像处理中,均方误差表示处理后图像像素值与原始像素值之差平方和的期望值。
图像尺寸为m*n,而x 和 y表示该某像素点的横纵坐标,I表示原图像,K表示处理后的图像
在这里插入图片描述

我们给出下面图片,来计算它们的MSE均方误差。其中mn图片有重合部分更相似,r与mn无重复部分。我们依次进行验证
在这里插入图片描述

Matlab计算MSE均方误差

%计算相同的两张图像m的均方误差
%A是处理后的图像,ref为参考图像,可根据需要进行图像修改
A=imread('m.png');
ref=imread('m.png');
err = immse(A, ref);
fprintf('\n The mean-squared error is %0.4f\n', err);

如下符合要求,均方误差为0
在这里插入图片描述
同理 采用m n 两张图(有重合部分)进行均方误差计算为3283.4812,可看出两图间差别越大值越大。
采用 m r两张图(无重合部分),均方误差为3766.2645,说明差别更大,符合图片描述。

RMSE均方根误差

相当于对均方误差MSE开根号。
在这里插入图片描述
同样采用mnr三张图片分别验证。

%输入两张相同的图片,其均方根误差为0,输入不同的两张图mn均方根误差为3.2835e+03,输入两张不同的图片mr为 3.7663e+03。
clc;
close all;
X = imread('m.png');%             读取图像
Y=imread('m.png');
figure;%展示图像
subplot(1, 3, 1); imshow(X); title('q1');
subplot(1, 3, 2); imshow(Y); title('q2');
% 使得图像每个像素值为浮点型
X = double(X);
Y = double(Y);

A = Y-X;
B = X.*Y;
%subplot(1,3,3);imshow(A);title('作差');
MSError = sum(A(:).*A(:))/numel(Y);%  均方根误差MSE,numel()函数返回矩阵元素个数
 
display(MSError);%均方根误差MSE

SNR信噪比

SNR为图像信噪比,图像的信噪比和图像的清晰度一样,也是衡量图像质量高低的重要指标。图像的信噪比是指视频信号的大小与噪波信号大小的比值
在这里插入图片描述

%信噪比说明混在信号里的噪声越小,因此输入mn图像(有重合区域),信噪比为6.7641;输入mr图像(无重合区域),信噪比为6.1683
clc;
close all;
X = imread('m.png');%             读取图像
Y=imread('n.png');
figure;%                           展示图像
subplot(1, 3, 1); imshow(X); title('q1');
subplot(1, 3, 2); imshow(Y); title('q2');
%                                  使得图像每个像素值为浮点型
X = double(X);
Y = double(Y);
 
A = Y-X;
B = X.*Y;
MSError = sum(A(:).*A(:))/numel(Y);
SNR = 10*log10(sum(X(:).*X(:))/MSError/numel(Y));%信噪比SNR

display(MSError);%均方根误差MSE
display(SNR);%信噪比SNR

PSNR峰值信噪比

PSNR为峰值信噪比,即峰值信号的能量与噪声的平均能量之比,通常表示的时候取 log 变成分贝(dB),由于 MSE 均方误差为原图像与处理后图像之差的能量均值,而两者的差相当于噪声,因此 PSNR 即峰值信号能量与 RMSE (均方根误差)之比。其中,MAX是表示图像点颜色的最大数值,也就是灰度值的最大值,如果每个采样点用 8 位表示,那么就是 255。
在这里插入图片描述

%同样用图片mnr验证即可
clc;
close all;
X = imread('m.png');%             读取图像
Y=imread('r.png');
figure;%                           展示图像
subplot(1, 3, 1); imshow(X); title('q1');
subplot(1, 3, 2); imshow(Y); title('q2');
%                                  使得图像每个像素值为浮点型
X = double(X);
Y = double(Y);
 
A = Y-X;
B = X.*Y;
RMSE = sum(A(:).*A(:))/numel(Y);%  均方根误差

PSNR = 10*log10(255^2/RMSE);%      峰值信噪比PSNR

display(PSNR);%峰值信噪比PSNR

SSIM结构相似度

SSIM为结构相似度,用来测量两幅图像的结构相似性大小(亮度、对比度以及结构间的对比),其是一个0-1之间的数,最大值为1。尤其反映了图像的轮廓,细节等的相似度,很适合作为图像拼接的客观评价指标。当两幅图像一模一样时,SSIM=1。
在这里插入图片描述
上公式中的三项分别代表三个特征(亮度,对比度以及结构)的占比。
在这里插入图片描述

结构相似度的数据模型可以表示为:
在这里插入图片描述

clc;
close all;
X = imread('m.png');%             读取图像
Y=imread('m.png');
figure;%                           展示图像
subplot(1, 3, 1); imshow(X); title('q1');
subplot(1, 3, 2); imshow(Y); title('q2');
%                                  使得图像每个像素值为浮点型
X = double(X);
Y = double(Y);
 
A = Y-X;
B = X.*Y;
MSError = sum(A(:).*A(:))/numel(Y); 
 
%以下为结构相似度SSIM
ux=sum(X(:).*X(:))/numel(X);
uy=sum(Y(:).*Y(:))/numel(Y);
sigmoidx=sum(X(:).*X(:)-ux)/numel(X);
sigmoidy=sum(Y(:).*Y(:)-uy)/numel(Y);
sigmoidxy=sum(B(:).*B(:))/(numel(B)*ux*uy)-ux*uy;
SSIM=(2*ux*uy)*(2*sigmoidxy)/(ux*ux+uy*uy)/(sigmoidx*sigmoidx+sigmoidy*sigmoidy);

 
display(SSIM);%结构相似性SSIM

熵值

反映图像信息丰富程度。通常情况下,图像信息熵越大,其信息量就越丰富,质量越好。对于图像拼接融合来说,熵值越大融合越好。
分别对较好拼接和较差拼接进行熵值的计算。
较差拼接:
较差拼接在这里插入图片描述
较好拼接:
在这里插入图片描述

clc
clear
close all
%---------------------------------
%求一幅图像的熵值
%---------------------------------
I=imread('较好拼接.jpg');
[C,L]=size(I); %求图像的规格
Img_size=C*L; %图像像素点的总个数
G=256; %图像的灰度级
H_x=0;
nk=zeros(G,1);%产生一个G行1列的全零矩阵
for i=1:C
for j=1:L
Img_level=I(i,j)+1; %获取图像的灰度级
nk(Img_level)=nk(Img_level)+1; %统计每个灰度级像素的点数
end
end
for k=1:G  %循环
Ps(k)=nk(k)/Img_size; %计算每一个像素点的概率
if Ps(k)~=0 %如果像素点的概率不为零
H_x=-Ps(k)*log2(Ps(k))+H_x; %求熵值的公式
end
end

运行后,在命令框输入H_x.
较好拼接熵值:7.5314
较差拼接:7.5210

由此符合我们的分析,熵值越大,拼接效果越好。

参考

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:44:16  更:2022-05-01 15:46:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:34:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码