光谱图像客观评价指标
SAM光谱角制图、PSNR峰值信噪比、MSE均方误差、SSIM结构相似性、CC相关系数、ERGAS相对全局无量纲误差是用于评价光谱图像重建的定量评价指标。本文旨在通过最简单的方式对两张光谱图像或RGB图像进行快速评价。
imgvision库用于进行图像处理与质量评价。该库仅基于Numpy库进行编写,通过矩阵的方式对图像进行快速处理,包括不限于光谱图像的不同光源下颜色空间转换、RGB图像不同光源下的色空间转换、光谱图像余弦距离的监督聚类、图像的质量评价等。
安装imgvision 1.7.3
imgvision在1.6.1版本后支持图像的质量评价。通过pycharm的Terminal或配置的虚拟环境进行安装:
pip install imgvision
[imgvision 1.7.3] 图像客观质量评价
更新: 增加了相关性(CC)指标,支持‘mat’模式;
import numpy as np
import imgvision as iv
#导入高光谱图像以及重建图像
Hyperspectral_Image = np.load('HSI.npy')
Reconstruction = np.load('Re_HSI')
#创建评价器
#图像范围 0~1 时, 默认v_max=1,不需填入参数
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction)
#图像范围 0~255 时, v_max=255
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction,v_max=255)
#对于ERGAS指标,创建评价器时传入融合缩放因子scale(scale=8 为8倍缩放因数,默认16)
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction,scale=8)
#评价SAM:
SAM = Metric.SAM()
#评价PSNR:
PSNR = Metric.PSNR()
#评价SSIM:
SSIM = Metric.SSIM()
#评价ERGAS:
ERGAS = Metric.ERGAS()
#评价MSE:
MSE = Metric.MSE()
#评价CC:
CC = Metric.CC()
#评价PSNR, SAM, ERGAS, SSIM, RMSE, CC
PSNR,SAM,ERGAS,SSIM,RMSE,CC = Metric.get_Evaluation()
#直接打印评价结果:
Metric.Evaluation()
mat模式
在SAM, MSE, CC指标中,mat模式用于获取图像每个像素的指标值。
在PSNR, SSIM指标中,mat模式用于获取图像每个波段的指标值。
想获取每个像素的SAM、MSE值?
想获取每个波段的PSNR、SSIM值?
'mat’帮助你更好的分析图像全局视觉质量。
import numpy as np
import imgvision as iv
#导入高光谱图像以及重建图像
Hyperspectral_Image = np.load('HSI.npy')
Reconstruction = np.load('Re_HSI')
#创建评价器
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction)
#评价SAM:
SAM = Metric.SAM(mode='mat')
#SAM.shape = [Hyperspectral_Image.shape[0], Hyperspectral_Image.shape[1],]
#评价MSE:
MSE = Metric.MSE(mode='mat')
#MSE.shape = [Hyperspectral_Image.shape[0], Hyperspectral_Image.shape[1],]
#评价CC:
CC = Metric.CC(mode='mat')
#CC.shape = [Hyperspectral_Image.shape[0], Hyperspectral_Image.shape[1],]
#评价PSNR:
PSNR = Metric.PSNR(mode='mat')
#PSNR.shape = [Hyperspectral_Image.shape[-1],]
#评价SSIM:
SSIM = Metric.SSIM(mode='mat') #图像像素范围的最大值为1时
#SSIM.shape = [Hyperspectral_Image.shape[-1],]
Previous历史版本 [imgvision 1.7.0] 图像客观质量评价
import numpy as np
import imgvision as iv
#导入高光谱图像以及重建图像
Hyperspectral_Image = np.load('HSI.npy')
Reconstruction = np.load('Re_HSI')
#创建评价器
#图像范围 0~1 时, 默认v_max=1,不需填入参数
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction)
#图像范围 0~255 时, v_max=255
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction,v_max=255)
#对于ERGAS指标,创建评价器时传入融合缩放因子scale(scale=8 为8倍缩放因数,默认16)
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction,scale=8)
#评价SAM:
SAM = Metric.SAM()
#评价PSNR:
PSNR = Metric.PSNR()
#评价SSIM:
SSIM = Metric.SSIM()
#评价ERGAS:
ERGAS = Metric.ERGAS()
#评价MSE:
MSE = Metric.MSE()
#评价PSNR, SAM, ERGAS, SSIM, RMSE
PSNR,SAM,ERGAS,SSIM,RMSE = Metric.get_Evaluation()
#直接打印评价结果:
Metric.Evaluation()
mat模式
在SAM, MSE指标中,mat模式用于获取图像每个像素的指标值。
在PSNR, SSIM指标中,mat模式用于获取图像每个波段的指标值。
想获取每个像素的SAM、MSE值?
想获取每个波段的PSNR、SSIM值?
'mat’帮助你更好的分析图像全局视觉质量。
import numpy as np
import imgvision as iv
#导入高光谱图像以及重建图像
Hyperspectral_Image = np.load('HSI.npy')
Reconstruction = np.load('Re_HSI')
#创建评价器
Metric = iv.spectra_metric(Hyperspectral_Image,Reconstruction)
#评价SAM:
SAM = Metric.SAM(mode='mat')
#SAM.shape = [Hyperspectral_Image.shape[0]*Hyperspectral_Image.shape[1],]
#评价MSE:
MSE = Metric.MSE(mode='mat')
#MSE.shape = [Hyperspectral_Image.shape[0]*Hyperspectral_Image.shape[1],]
#评价PSNR:
PSNR = Metric.PSNR(mode='mat')
#PSNR.shape = [Hyperspectral_Image.shape[-1],]
#评价SSIM:
SSIM = Metric.SSIM(mode='mat') #图像像素范围的最大值为1时
#SSIM.shape = [Hyperspectral_Image.shape[-1],]