Python读取SAR(高分遥感卫星图像)16位tiff转换成8位可视灰度图jpg,png格式等
导入库和读取图像转换和存图导入库和读取图像
import numpy as npimport cv2img = cv2.imread('sar_example.tif',-1)
需要用到的库包括numpy和cv2,如果缺少cv2库可以conda install opencv进行安装,如果不是使用conda环境可以通过pip install opencv-python进行安装。通过cv2.imread的方式可以完整的读入16位的tif格式图片(注意替换函数调用的文件名)。
转换和存图
img_8 = (img / 256).astype('uint8')cv2.imwrite('example.tif', 256-img_8)
这里使用的是numpy库中的astype进行转换。由于16位的和8位的二进制数值差倍数转换成10进制是256,所以将16位的原图片除以256就可以相应地收缩成8位下的对应值,但是这样会生成小数,于是再使用astype(‘uint8’)进行转换即可以转成8位的。
最后再写出自己想要的格式就好了。如果是用256-img_8的话就可以得到背景较白的图片,如果直接存就可以得到背景较黑的图片,如果不想转换格式,只是想变成直接可视的8位图片,也可以直接存成tif格式。