Python光谱图像评价指标SAM, PSNR, MSE, SSIM,ERGAS
1、图像客观质量评价
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()
#评价PSNR:
PSNR = Metric.PSNR()
#评价SSIM:
SSIM = Metric.SSIM() #图像像素范围的最大值为1时
SSIM_int8 = Metric.SSIM(l=255) #图像像素范围的最大值为255时(即8进制)
#评价ERGAS:
ERGAS = Metric.ERGAS()
#评价PSNR, SAM, ERGAS, SSIM
Metric.Evaluation()
2、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_int8 = Metric.SSIM(l=255,mode='mat') #图像像素范围的最大值为255时(即8进制)
#SSIM.shape = [Hyperspectral_Image.shape[-1],]
3、什么是图像的MAT模式
在图像处理中,MAT(Matrix)模式是一种常见的表示图像的数据结构。MAT模式将图像表示为一个矩阵或数组,其中每个元素表示图像的一个像素值。
MAT模式通常用于灰度图像,其中每个像素的值代表灰度级别,通常在0到255之间。矩阵的行和列对应于图像中的像素位置,因此可以通过索引来访问和修改每个像素的值。
例如,对于一个100x100像素的灰度图像,MAT模式可以表示为一个100x100的矩阵:
[ 0 10 20 ... 0 15 25
5 0 30 ... 0 40 10
25 30 0 ... 50 55 0
...
0 0 70 ... 0 0 0 ]
对于彩色图像,MAT模式可以使用三维矩阵表示,其中每个像素包含红、绿、蓝(RGB)三个通道的值。矩阵的行和列仍然对应于图像中的像素位置,而矩阵中的第三个维度代表通道。
例如,对于一个100x100像素的彩色图像,MAT模式可以表示为一个100x100x3的矩阵,其中每个元素是一个长度为3的向量,分别表示红、绿、蓝通道的灰度级别。
[ [255 0 0] [ 10 200 100] [ 50 50 50] ... [ 0 15 25]
[ 0 0 0] [ 0 0 0] [200 100 0] ... [ 0 40 10]
[ 0 0 0] [100 200 100] [ 0 0 0] ... [ 50 55 0]
...
[ 0 0 0] [ 0 0 0] [ 0 70 0] ... [ 0 0 0] ]
MAT模式提供了一种灵活且直观的方式来表示和操作图像数据,因此在许多图像处理库和工具中被广泛使用。这种表示方式使得可以很容易地进行图像的处理、分析和算法应用。