16bit
8bit
from skimage import exposure, img_as_ubyte
import gdalTools
import numpy as np
from PIL import Image as pilimg
from pathlib import Path
import warnings
import rasterio
if __name__ == '__main__':
imgPath = "test.tif"
outPath = "test3_8bit.jpg"
src = rasterio.open(imgPath)
img_array = np.dstack(list(src.read([3, 2, 1])))
img_array = exposure.rescale_intensity(img_array, in_range=(0, 2200))
with warnings.catch_warnings():
warnings.simplefilter("ignore")
img_array = img_as_ubyte(img_array)
img_pil = pilimg.fromarray(img_array)
with open(Path(outPath), 'w') as dst:
img_pil.save(dst, format='JPEG', subsampling=0, quality=100)
stats = {'mean': img_array.mean(axis=(0, 1)),
'std': img_array.std(axis=(0, 1))}
print(stats)