【Pavia】遥感图像数据集下载地址和读取数据集代码



前言

遥感系列第13篇。遥感图像处理方向的学习者可以参考或者复刻

本文初编辑于2024年3月28日

CSDN:https://blog.csdn.net/rvdgdsva

博客园:https://www.cnblogs.com/hassle

总结:有一说一,从新手的角度上来说,Pavia数据集比Houston数据集友好了不知道多少倍

遥感图像,很自然科学吧,放个虚无战神暴力小朋友在此镇楼


Pavia数据集

Pavia University数据集是一个高光谱图像数据集,由一个被称为反射光学系统在意大利帕维亚市(ROSIS-3)的传感器收集。该图像由610×340像素,115个光谱波段组成。该图像被分为9类,共计42,776个标签样本,包括沥青、草地、砾石、树木、金属板、裸土、沥青、砖和阴影。

Pavia数据集地址:

https://www.ehu.eus/ccwintco/index.php/Hyperspectral_Remote_Sensing_Scenes#Pavia_Centre_and_University

下载的Pavia数据集是.mat格式的

下面提供Matlab和Python两种读取方式


Pavia数据集预览

PaviaU.mat

PaviaU_gt.mat


Pavia数据集的Matlab读取方式

Pavia数据集中PaviaU.mat的matlab读取代码

% 加载PaviaU.mat文件
load('PaviaU.mat') % 获取输入图像的尺寸
InputMatImg = paviaU;
b = size(InputMatImg);
fprintf('输入图像宽度为 %d\n', b(1));
fprintf('输入图像高度为 %d\n', b(2));
fprintf('输入图像波段数为 %d\n', b(3)); % 选择三个波段
i = 57; j = 34; k = 3; % 获取第i、j、k个波段
InputImg_r = InputMatImg(:,:,i);
InputImg_g = InputMatImg(:,:,j);
InputImg_b = InputMatImg(:,:,k); % 打印每个波段的最大像素值
fprintf('%d\n', max(InputImg_r(:))); % 为8000
fprintf('%d\n', max(InputImg_g(:))); % 为8000
fprintf('%d\n', max(InputImg_b(:))); % 为8000 % 将像素值缩放到0-255范围
InputImg_r = InputImg_r / 8000 * 255;
InputImg_g = InputImg_g / 8000 * 255;
InputImg_b = InputImg_b / 8000 * 255; % 打印缩放后的最大像素值
fprintf('%d\n', max(InputImg_r(:))); % 为255
fprintf('%d\n', max(InputImg_g(:))); % 为255
fprintf('%d\n', max(InputImg_b(:))); % 为255 % 将像素值转换为uint8类型
InputImg_r = uint8(InputImg_r);
InputImg_g = uint8(InputImg_g);
InputImg_b = uint8(InputImg_b); % 合成RGB图像
RGBImg = cat(3, InputImg_r, InputImg_g, InputImg_b); % 显示每个波段和合成波段的图像
figure;
subplot(221); imshow(InputImg_r); title('1号波段');
subplot(222); imshow(InputImg_g); title('2号波段');
subplot(223); imshow(InputImg_b); title('3号波段');
subplot(224); imshow(RGBImg); title('合成波段'); % 将每个波段和合成波段保存为图片文件
imwrite(InputImg_r, ['MATBand', num2str(i), '.jpg']);
imwrite(InputImg_g, ['MATBand', num2str(j), '.jpg']);
imwrite(InputImg_b, ['MATBand', num2str(k), '.jpg']);
imwrite(RGBImg, 'composite_img.jpg');

Pavia数据集中PaviaU_gt.mat的matlab读取代码

load('PaviaU_gt.mat')

fprintf('%d\n',max(paviaU_gt(:)));

paviaU_gt=paviaU_gt/max(paviaU_gt(:))*255

paviaU_gt= uint8(paviaU_gt);

imshow(paviaU_gt);title('这可就有点麻烦了');

Pavia数据集的Python读取方式

Pavia数据集中PaviaU.mat的Python读取代码

# 导入所需的库
from scipy import io
import numpy as np
from PIL import Image # 定义图像路径
imgPth = "PaviaU.mat" # 从.mat文件中加载图像数据
img = io.loadmat(imgPth)['paviaU'][:,:,[57,34,3]]
img = np.asarray(img) # 打印三个通道中的最大像素值
print(np.max(img[:,:,0]))
print(np.max(img[:,:,1]))
print(np.max(img[:,:,2])) # 将每个通道的像素值缩放到0-255范围内
img[:,:,0] = img[:,:,0]/np.max(img[:,:,0])*255
img[:,:,1] = img[:,:,1]/np.max(img[:,:,1])*255
img[:,:,2] = img[:,:,2]/np.max(img[:,:,2])*255 # 打印缩放后的每个通道的最大像素值
print(np.max(img[:,:,0]))
print(np.max(img[:,:,1]))
print(np.max(img[:,:,2])) # 对图像进行取整操作
img = np.ceil(img) # 将numpy数组转换为PIL图像对象
img = Image.fromarray(np.uint8(img)) # 保存图像为PNG格式
img.save("./PaviaU.png")

Pavia数据集中PaviaU_gt.mat的Python读取代码

from scipy import io
import numpy as np
from PIL import Image gtPth = 'PaviaU_gt.mat'
img = io.loadmat(gtPth)['paviaU_gt'][:,:]
img = np.asarray(img)
img= img/np.max(img)*255
img = Image.fromarray(np.uint8(img))
img.save("./PaviaU_gt.png")

【Pavia】遥感图像数据集下载地址和读取数据集代码的更多相关文章

  1. ArcGIS二次开发之读取遥感图像像素值的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 首先是读取遥感图像的R.G.B波段数据的做法.读取R.G.B波段数据的像素值主要通过IRaster接口的Read方法在 ...

  2. mnist数据集下载——mnist数据集提供百度网盘下载地址

    mnist数据集是由深度学习大神 LeCun等人制作完成的数据集,mnist数据集也常认为是深度学习的“ Hello World!”. 官网:http://yann.lecun.com/exdb/mn ...

  3. 【GIS风暴】30米分辨率地表覆盖数据GlobeLand30原始数据集简介及下载地址

    数据集预览: GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载使用的有3年的数据:2000-2010-2020,本文主要讲述GlobeLand30的官网下载地址和数据集简介. 数 ...

  4. Fast RCNN 训练自己数据集 (2修改数据读取接口)

    Fast RCNN训练自己的数据集 (2修改读写接口) 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ http ...

  5. Landsat8免费下载地址

    一.国外 Landsat8提供免费下载,在USGS上有两个网站,下面介绍的这个网站操作比较方便.这里大赞美国的USGS和NASA机构,不但提供免费下载的数据,而且下载网站制作和维护的非常便捷.废话少说 ...

  6. 【Keras】基于SegNet和U-Net的遥感图像语义分割

    上两个月参加了个比赛,做的是对遥感高清图像做语义分割,美其名曰"天空之眼".这两周数据挖掘课期末project我们组选的课题也是遥感图像的语义分割,所以刚好又把前段时间做的成果重新 ...

  7. Navi.Soft31.代码生成器(含下载地址)

    1系统简介 1.1功能简述 在Net软件开发过程中,大部分时间都是在编写代码,并且都是重复和冗杂的代码.比如:要实现在数据库中10个表的增删改查功能,大部分代码都是相同的,只需修改10%的代码量.此时 ...

  8. 微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)

    开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜.2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户和超 30 万的 ...

  9. 谷歌浏览器下载地址 chrome最新版本 百度云地址

    每次下载更新谷歌浏览器是一件很蛋疼的事情.百度搜索"谷歌浏览器下载地址",居然有很多骗子网站,相信有很多不知所以的人中招了.收集了一些chrome的安装包,放在了百度云里面(打不开 ...

  10. 【资料下载区】【iCore3相关代码、资料下载地址】更新日期2017/1/5

    [iCore3 ARM代码下载地址][全部]DEMO1.0测试程序发布例程一:ARM驱动三色LED例程二:读取arm按键状态例程三:EXTI中断输入实验——读取ARM按键状态例程四:USART通信实验 ...

随机推荐

  1. CompletableFuture使用自定义线程池实现多任务结果聚合返回

    为什么要使用自定义线程池? 默认线程池缺点 1.CompletableFuture默认使用的线程池是 ForkJoinPool.commonPool(),commonPool是当前 JVM(进程) 上 ...

  2. thymeleaf利用fragment解决html页面间获取context-path问题

    问题说明 我使用spring boot+thymeleaf做了个项目,那前台页面都是html,里面有各种api调用和路径跳转. 大家都知道这些路径不能写死,为保证任何情况下路径的正确性,一般都是这种格 ...

  3. 【Android逆向】frida hook so 函数

    1. apk来自52pojie 链接:https://pan.baidu.com/s/1vKC1SevvHfeI7f0d2c6IqQ 密码:u1an 2.apktool反编译apk,拿到so文件 ja ...

  4. logback 常用配置(详解)

    转自:https://blog.csdn.net/qq_36850813/article/details/83092051 官方文档参考:https://logback.qos.ch/manual/a ...

  5. 海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

    前言   Hik防爆摄像头录像,因为防爆摄像头会有对应的APP软件,与普通的网络摄像头和球机不一样,默认认为它不可以通过web网页配置,所以弄了个来实测确认.  经测试实际上也是可以通过web网页配置 ...

  6. 基于javaweb的个人音乐网站

    一 .需求 ① 前台用户: 用户注册和登录以及完善个人资料: 添加好友功能(用户之间可通过发送好友申请添加好友,被添加人可以同意或拒绝好友申请): 下载歌曲功能(当用户点击下载按钮时,就能下载相对应的 ...

  7. React 受控和非受控组件

    无论你做什么,都要相信自己可以做到,因为你的潜力是无限的. 把父组件的状态变成属性传递给子组件,子组件接受这个属性,听命于父组件.这个子组件就是叫做受控组件.在受控与非受控组件有两种理解方案,第一:狭 ...

  8. Django重点

    Django 简述python三大主流web框架 """ django 大而全,类似于航空母舰 但是有时候过于笨重 flask 小而精,类似于游骑兵(单行代码就可以起一个 ...

  9. Java 演示线程的死锁问题

    1 package bytezero.deadlock; 2 3 /** 4 * 演示线程的死锁问题: 5 * 6 * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃 7 ...

  10. spring源码手写aop

    AOP:       aop切面编程,其实就是spring增强器的一个扩展,就是通过beanPostProcessor的after后置方式实现的,其中在after中把需要的bean通过放射+动态代理完 ...