利用windows系统把tif格式转传统三通道格式的图片

1.首先安装GDAL地理信息空间软件,在window上很好装,在Linux系统上安装非常麻烦,所以所有图片在本地进行处理,再用numpy.save 保存成二维数据,然后上传到云服务器,用numpy.load读取,再送入神经网络进行训练

2.代码

import numpy as np
import random
import pandas as pd
from osgeo import gdal
import matplotlib.pyplot as plt
from tensorflow.keras.utils import to_categorical
#path :../data/train  ,../data/test 
def load_data(choose_path,class_num):
    #列表
    data = []#数据x
    label = []#标签y
    dataframe = pd.read_csv(choose_path)
    image_paths=dataframe.id.tolist()
    #label也是一个列表
    label=dataframe.label.tolist()
    counter=1
    for each_path in image_paths:
        #读入imge的完整路径
        print(each_path)
        #print(type(each_path))读出each_path是string类型
        print("循环数",counter)
        counter = counter+1
        #读入图像  error 96*3*3  expected:96*96*3
        image  = gdal.Open(each_path)
        #显示通道数量:3通道
        num_bands = image.RasterCount
        print("通道数",num_bands)
        #3,96,96 ,ReadAsArray()方法用于把栅格数据转换成数组
        tmp_img = image.ReadAsArray()
        print("栅格数据转换成的数组:",tmp_img.shape)
        #转置矩阵
        img = tmp_img.transpose(2, 1, 0)
        print("转置矩阵",img.shape)
        img_rgb = img[:,:,0:3]
        img_rgb = np.array(img_rgb, dtype = np.uint8)
        # 行:96 列:3 通道:3
        print("传统图像通道img_rgb:",img_rgb.shape)
        plt.imshow(img_rgb)       
        #把numpy矩阵中的整数转换成浮点数
        #image = img_to_array(img_rgb)
        data.append(img_rgb)
    #将列表转化为数组
    datas = np.array(data,dtype="float32")/255.0#归一化
    label = np.array(label)
    labels = to_categorical(label,num_classes=class_num)#one-hot
    #在本地电脑端生成二维数组文件,再放到云服务器端进行处理
    np.save(r"F:\user-data\newproject\cancer_CNN\process\testdatas.npy",datas)
    np.save(r"F:\user-data\newproject\cancer_CNN\process\testlabels.npy",labels)
    return datas,labels

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

icroblog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值