经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
【Pavia】遥感图像数据集下载地址和读取数据集代码
来源:cnblogs  作者:这可就有点麻烦了  时间:2024/3/29 8:47:51  对本文有异议

【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读取代码

  1. % 加载PaviaU.mat文件
  2. load('PaviaU.mat')
  3. % 获取输入图像的尺寸
  4. InputMatImg = paviaU;
  5. b = size(InputMatImg);
  6. fprintf('输入图像宽度为 %d\n', b(1));
  7. fprintf('输入图像高度为 %d\n', b(2));
  8. fprintf('输入图像波段数为 %d\n', b(3));
  9. % 选择三个波段
  10. i = 57; j = 34; k = 3;
  11. % 获取第ijk个波段
  12. InputImg_r = InputMatImg(:,:,i);
  13. InputImg_g = InputMatImg(:,:,j);
  14. InputImg_b = InputMatImg(:,:,k);
  15. % 打印每个波段的最大像素值
  16. fprintf('%d\n', max(InputImg_r(:))); % 8000
  17. fprintf('%d\n', max(InputImg_g(:))); % 8000
  18. fprintf('%d\n', max(InputImg_b(:))); % 8000
  19. % 将像素值缩放到0-255范围
  20. InputImg_r = InputImg_r / 8000 * 255;
  21. InputImg_g = InputImg_g / 8000 * 255;
  22. InputImg_b = InputImg_b / 8000 * 255;
  23. % 打印缩放后的最大像素值
  24. fprintf('%d\n', max(InputImg_r(:))); % 255
  25. fprintf('%d\n', max(InputImg_g(:))); % 255
  26. fprintf('%d\n', max(InputImg_b(:))); % 255
  27. % 将像素值转换为uint8类型
  28. InputImg_r = uint8(InputImg_r);
  29. InputImg_g = uint8(InputImg_g);
  30. InputImg_b = uint8(InputImg_b);
  31. % 合成RGB图像
  32. RGBImg = cat(3, InputImg_r, InputImg_g, InputImg_b);
  33. % 显示每个波段和合成波段的图像
  34. figure;
  35. subplot(221); imshow(InputImg_r); title('1号波段');
  36. subplot(222); imshow(InputImg_g); title('2号波段');
  37. subplot(223); imshow(InputImg_b); title('3号波段');
  38. subplot(224); imshow(RGBImg); title('合成波段');
  39. % 将每个波段和合成波段保存为图片文件
  40. imwrite(InputImg_r, ['MATBand', num2str(i), '.jpg']);
  41. imwrite(InputImg_g, ['MATBand', num2str(j), '.jpg']);
  42. imwrite(InputImg_b, ['MATBand', num2str(k), '.jpg']);
  43. imwrite(RGBImg, 'composite_img.jpg');

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

  1. load('PaviaU_gt.mat')
  2. fprintf('%d\n',max(paviaU_gt(:)));
  3. paviaU_gt=paviaU_gt/max(paviaU_gt(:))*255
  4. paviaU_gt= uint8(paviaU_gt);
  5. imshow(paviaU_gt);title('这可就有点麻烦了');

Pavia数据集的Python读取方式

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

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

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

  1. from scipy import io
  2. import numpy as np
  3. from PIL import Image
  4. gtPth = 'PaviaU_gt.mat'
  5. img = io.loadmat(gtPth)['paviaU_gt'][:,:]
  6. img = np.asarray(img)
  7. img= img/np.max(img)*255
  8. img = Image.fromarray(np.uint8(img))
  9. img.save("./PaviaU_gt.png")

原文链接:https://www.cnblogs.com/hassle/p/18101105

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号