Potsdam,Vaihingen数据集(附百度网盘下载地址)

遥感数据集Potsdam,Vaihingen 的分享及处理

对于做遥感图像处理的同学来说,Potsdam,Vaihingen是两个常用的数据集。如果想下载,一般需要搭梯子下载,并且下载过程经常中断,百度相关文章,排名靠前的文章也没有给出国内相关下载链接,因此将自己下载的数据集分享出来,为大家提供方便。

  • Potsdam数据集:
  • 链接:https://pan.baidu.com/s/13rdBXUN_ZdelWNlQZ3Y1TQ?pwd=6c3y
    提取码:6c3y
    Potsdam,Vaihingen数据集(附百度网盘下载地址)
  • Vaihingen数据集
    链接:https://pan.baidu.com/s/1EShNi22VfuIu3e6VygMb8g?pwd=3gsr
    提取码:3gsr
    Potsdam,Vaihingen数据集(附百度网盘下载地址)

; 2. 数据集分割处理

1)分割图片

以Potsdam数据集为例,其中包含38张6000×6000尺寸的遥感图片,对于一般的训练机器来说,其尺寸有点大,因此需要对原始图片进行分割。这里我将每张原始图片分割为100张600×600的小尺寸图片,程序如下:


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')
    img2 = cv2.imread('/user-data/GNN_RemoteSensor/5_Labels_all/top_potsdam_7_' + str(k) + '_label.tif')

    for i in range(10):
        for j in range(10):
            img1_ = img1[600*i : 600*(i+1), 600*j : 600*(j+1), : ]
            img2_ = img2[600*i : 600*(i+1), 600*j : 600*(j+1), : ]

            name = i*10 + j + 2400 + k * 100

            name = str(name)
            cv2.imwrite('./datasets/images/'+ name + '.jpg', img1_)
            cv2.imwrite('./datasets/labels/'+ name + '.png', img2_)

分割后的图片和标签图片如下所示:

Potsdam,Vaihingen数据集(附百度网盘下载地址)
Potsdam,Vaihingen数据集(附百度网盘下载地址)

2)保存为.mat格式

我自己的程序中,每次是访问.mat数据集,进行训练和预测,所以需要将上述图片和标签保存为.mat格式。如果有同样需求,可以参考下面的程序:


import glob
import numpy as np
import cv2
import os
from scipy.io import savemat

array_of_img = []
for filename in os.listdir(r"./datasets/images"):
    img = cv2.imread("datasets/images/" + filename)

    img2 = img[:, :, (2,1,0)]
    array_of_img.append(img2)

array_of_lab = []
    for filenames in os.listdir(r"./datasets/labels"):
        lab = cv2.imread("datasets/labels/" + filenames)

        array_of_lab.append(lab)

name_for_txt = array_of_lab.shape[0]
Width = 600
Height = 600

'''创建空矩阵,用于存放一张图片每个像素的分类数据'''
self.Empty_array = np.zeros((name_for_txt, Width, Height), dtype=np.uint8)
for ii in range(name_for_txt):
       row_Frame = self.label_images[ii]
       for w in range(Width):
           for h in range(Height):
               '''判断属于哪一类,不一样的类有不同的颜色'''
               if row_Frame[w, h, 2] == 255 and row_Frame[w, h, 1] == 0 and row_Frame[w, h, 0] == 0:

                   self.Empty_array[ii, w, h] = 1
               elif row_Frame[w, h, 2] == 255 and row_Frame[w, h, 1] ==255 and row_Frame[w, h, 0] == 0:

                    self.Empty_array[ii, w, h] = 2
               elif row_Frame[w, h, 2] == 0 and row_Frame[w, h, 1] == 255 and row_Frame[w, h, 0] == 255:

                    self.Empty_array[ii, w, h] = 3
               elif row_Frame[w, h, 2] == 0 and row_Frame[w, h, 1] == 255 and row_Frame[w, h, 0] == 0:

                    self.Empty_array[ii, w, h] = 4
               elif row_Frame[w, h, 2] == 0 and row_Frame[w, h, 1] == 0 and row_Frame[w, h, 0] == 255:

                    self.Empty_array[ii, w, h] = 5
                elif row_Frame[w, h, 2] == 255 and row_Frame[w, h, 1] == 255 and row_Frame[w, h, 0] == 255:

                    self.Empty_array[ii, w, h] = 6
                else:

                    self.Empty_array[ii, w, h] = 0
savemat('./datasets/data/labels-images.mat', {'labels': Empty_array, 'images': array_of_img}, '-v7')

现在数据集准备好了,可以开始训练啦。
附:上述数据集的介绍

Original: https://blog.csdn.net/weixin_49703603/article/details/121061495
Author: 小了白了兔_白了又了白
Title: Potsdam,Vaihingen数据集(附百度网盘下载地址)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/632483/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球