File size: 883 Bytes
bfd8ee5
35d85a5
 
 
 
 
874bb22
35d85a5
bfd8ee5
35d85a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from osgeo import gdal
import numpy as np
import os
import tempfile
from PIL import Image

def convert_gtiff_to_8bit(src):
    dst = src
    img = gdal.Open(src)
    driver = gdal.GetDriverByName('GTiff')

    output_image = driver.Create(dst, img.RasterXSize, img.RasterYSize, img.RasterCount, gdal.GDT_Byte, ['PHOTOMETRIC = RGB'])
    output_image.SetGeoTransform(img.GetGeoTransform())
    output_image.SetProjection(img.GetProjection())

    max_bands = img.RasterCount
    for i in range(max_bands):
        i = i+1
        band = img.GetRasterBand(i)
        band_array = band.ReadAsArray()

        min, max = band.ComputeRasterMinMax(1)
        band_array = np.interp(band_array, (min,max), (0,255)).astype(np.uint8)

        out = output_image.GetRasterBand(i)
        out.WriteArray(band_array)
        out.FlushCache()
    return output_image
    del output_image