1.読み取り、表示、保存
1.基本情報を入手する
from osgeo import gdal
import numpy as np
dataset = gdal.Open("G:\mypython3\gdal\data\can_tmr.img")
cols = dataset.RasterXSize
rows = dataset.RasterYSize
bands = dataset.RasterCount
2.バンド情報を取得し、組み合わせる
band = dataset.GetRasterBand(3)
r = band.ReadAsArray(0,0,cols,rows)
band = dataset.GetRasterBand(2)
g = band.ReadAsArray(0,0,cols,rows)
band = dataset.GetRasterBand(1)
b = band.ReadAsArray(0,0,cols,rows)
3.画像を表示して保存します
opencvを介して組み合わせる:
import cv2
from matplotlib import pyplot as plt
img = cv2.merge([r,g,b])
plt.imshow(img)
plt.show()
または、pltを使用して描画します。
datas = dataset.ReadAsArray(0,0,cols,rows)
dimen = np.array(datas).shape
print(dimen)
a_datas = np.array(datas)
print(a_datas.shape)
#旋转,旋转为(400,640,6)
t_datas = a_datas.transpose((1,2,0))
#拉伸显示
from skimage import exposure
img2 = exposure.rescale_intensity(img2)
from PIL import Image
image = Image.fromarray(img2)
plt.imshow(image)
plt.show()
image.save('G:\mypython3\gdal\data\out.jpg')
2.その他の操作
# 旋转
image = image.rotate(-90)
# 对称
image = image.transpose(Image.FLIP_LEFT_RIGHT)
# 转置
array.transpose((1,2,0))
# 调整大小
image = image.resize((cols,rows))
# 拉伸,原图像为8bit,这里为0-255显示拉伸
# 可以通过in_range, out_range来控制拉伸输入和输出的像元值
from skimage import exposure
img2 = exposure.rescale_intensity(img2)