遥感数据集Potsdam,Vaihingen 的分享及处理
1. Potsdam,Vaihingen数据集下载地址(百度网盘)
对于做遥感图像处理的同学来说,Potsdam,Vaihingen是两个常用的数据集。如果想下载,一般需要搭梯子下载,并且下载过程经常中断,百度相关文章,排名靠前的文章也没有给出国内相关下载链接,因此将自己下载的数据集分享出来,为大家提供方便。
- Potsdam数据集:
- 链接:https://pan.baidu.com/s/13rdBXUN_ZdelWNlQZ3Y1TQ?pwd=6c3y
提取码:6c3y
- Vaihingen数据集
链接:https://pan.baidu.com/s/1EShNi22VfuIu3e6VygMb8g?pwd=3gsr
提取码:3gsr
2. 数据集分割处理
1)分割图片
以Potsdam数据集为例,其中包含38张6000x6000尺寸的遥感图片,对于一般的训练机器来说,其尺寸有点大,因此需要对原始图片进行分割。这里我将每张原始图片分割为100张600x600的小尺寸图片,程序如下:
#Python程序
import cv2
import numpy
for k in range(7,14):
img1 = cv2.imread('/user-data/GNN_RemoteSensor/2_Ortho_RGB/top_potsdam_7_' + str(k) + '_RGB.tif') #读取RGB原图像
img2 = cv2.imread('/user-data/GNN_RemoteSensor/5_Labels_all/top_potsdam_7_' + str(k) + '_label.tif') #读取Labels图像
# 因为数据集中图片命名不规律,所以需要一批一批的分割
# cv2.imread函数会把图片读取为(B,G,R)顺序,一定要注意!!!
# cv2.imwrite函数最后会将通道调整回来,所以成对使用cv2.imread与cv2.imwrite不会改变通道顺序
#因为6000/10 = 600,所以6000x6000的图像可以划分为10x10个600x600大小的图像
for i in range(10):
for j in range(10):
img1_ = img1[600*i : 600*(i+1), 600*j : 600*(j+1), :