16位图转8位图 (python)
import cv2
import numpy as np
import os
from PIL import Image
path=r"E:\AI_datas\3-16Bit\3"
save_path=r"E:\AI_datas\3-16Bit\4"
for name in os.listdir(path):
if name.split('.')[-1]=='tif':
new_path=os.path.join(path,name)
uint16_img = cv2.imread(new_path,-1)
#uint16_img1 = Image.open(new_path)
#Image_p=Image.fromarray(uint16_img)
uint16_img -= uint16_img.min()
uint16_img = uint16_img / (uint16_img.max() - uint16_img.min())
uint16_img *= 255
new_uint16_img = uint16_img.astype(np.uint8)
# M=cv2.getRotationMatrix2D((uint16_img.shape[0]/2,uint16_img.shape[1]/2),45,0.8)
# uint16_img=cv2.warpAffine(uint16_img,M,(cols, rows))
basename=name.split('.')[0]
# uint16_img=Image.fromarray(uint16_img)
# uint16_img.save(os.path.join(save_path,basename)+'.png')
cv2.imwrite(os.path.join(save_path,basename)+'.bmp', uint16_img)
print(os.path.join(save_path,name))
# cv2.waitKey(0)