针对Fusformer的测试

文章介绍了如何在GoogleColab环境中从GitHub克隆Fusformer和HyperTransformer项目,进行Hyperspectral图像超分辨率的测试和训练。作者提供了数据下载链接和Matlab脚本,用于评估PSNR、SAM、ERGAS和SSIM等指标来衡量处理效果。
摘要由CSDN通过智能技术生成

 因为仅针对测试和简单的训练,不需要太好的网络环境,我便使用colab完成

下载代码

%cd /content/drive/MyDrive/Colab_Notebooks/remote dataset
!git clone https://github.com/J-FHu/Fusformer.git

%cd /content/drive/MyDrive/Colab_Notebooks/remote dataset
!git clone https://github.com/wgcban/HyperTransformer.git

 Fusformer

test

Demo data download link: Release Fusformer: A Transformer-based Fusion Approach for Hyperspectral Image Super-resolution · J-FHu/Fusformer · GitHub

Complete training and test data download link:

1.https://drive.google.com/drive/folders/11EsA_qLtf306RxEReFSA_iKltdpn-IJT?usp=sharing   or 2.百度网盘 请输入提取码 Password:kjra

其中demo_cave_patches_h5是由demo_cave_h5裁剪而成,如果内存不够大,使用demo_cave_patches_h5.

test_set = DatasetFromHdf5("/更改为你自己的路径/demo_cave_patches.h5")
path_checkpoint = '/更改为你自己的路径/1000.pth'

最后会生成PatchOutput-cave.mat结果

在matlab中使用resharp2big.m再重新恢复原图大小

如下

若要得到诸如PSNR SAM ERGAS SSIM之类的指标,使用此demo图和原图作比较即可。

PSNR

% 修改版 加载原图和更改后的图像
original = imread('untitled1.png');  % 请替换为原图像的路径
changed = imread('untitled无损.png');    % 请替换为更改后的图像的路径


% 确保图像是 double 类型,以便进行计算
original = im2double(original);
changed = im2double(changed);

% 计算 PSNR
psnrValue = psnr(changed, original);

% 显示 PSNR 值
disp(['PSNR between original and changed images: ' num2str(psnrValue)]);

SAM

% 读取图像
originalPath = 'untitled1.png';  % 请替换为原图像的路径
changedPath = 'untitled无损.png';    % 请替换为更改后的图像的路径

% 读取图像
original = imread(originalPath);
changed = imread(changedPath);

% 将图像转换为 double 类型
img1 = im2double(original);
img2 = im2double(changed);

% 将图像转换为向量形式(每个像素为一个元素)
vec1 = reshape(img1, [], size(img1, 3));
vec2 = reshape(img2, [], size(img2, 3));

% 计算两个图像之间的 Spectral Angle Mapper (SAM)
cosine_similarity = sum(vec1 .* vec2, 2) ./ (sqrt(sum(vec1.^2, 2)) .* sqrt(sum(vec2.^2, 2)));

% 处理可能的 acos 函数返回 NaN 的情况
cosine_similarity(isnan(cosine_similarity)) = 1;  % 假设对角线上的相似度为 1

% 使用 min 函数确保传递给 acosd 的值在 [-1, 1] 范围内
cosine_similarity = min(max(cosine_similarity, -1), 1);

sam = acosd(cosine_similarity);

% 显示计算得到的 SAM 值
disp(['Spectral Angle Mapper (SAM): ' num2str(mean(sam))]);

ERGAS

% 读取图像
original = imread('untitled1.png');  % 请替换为原图像的路径
changed = imread('untitled无损.png');  % 请替换为处理后的图像的路径

% 转换为 double 类型
original = im2double(original);
changed = im2double(changed);

% 计算均方根误差 (RMSE)
rmse = sqrt(mean((original(:) - changed(:)).^2));

% 计算原始图像的均值
original_mean = mean(original(:));

% 计算 ERGAS 指标
ergas = (rmse / original_mean) * 100;

% 显示计算得到的 ERGAS 值
disp(['ERGAS: ' num2str(ergas)]);

SSIM

% 读取图像
original = imread('untitled1.png');  % 请替换为原图像的路径
changed = imread('untitled无损.png');  % 请替换为处理后的图像的路径

% 将图像转换为 double 类型
original = im2double(original);
changed = im2double(changed);

% 计算 SSIM
ssimValue = ssim(original, changed);

% 显示计算得到的 SSIM 值
disp(['SSIM: ' num2str(ssimValue)]);

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值