import PIL.ImageOps
from PIL import Image
import os
import cv2
import numpy as np
# from libtiff import TIFF
dir_ = 'C:\\Users\\pc\\Desktop\\6185-621-001\\6185-621-001-002'
for fl in os.listdir(dir_):
name, ext = fl.split(".")
# tif = TIFF.open(os.path.join(dir,fl), mode='r')
# image = tif.read_image()
# for image in tif.iter_images(): # do stuff with image
# tif = TIFF.open('D://'+name + ".tiff", mode='w')
# tif.write_image(image)
with Image.open(os.path.join(dir_, fl)) as im:
info = getattr(im, 'info', {
'compression': 'jpeg', 'dpi': (300, 300)
})
nchannel = len(im.getbands())
print(im.format)
tag = True if nchannel == 1 else False
im = cv2.imdecode(np.fromfile(os.path.join(dir_, fl), dtype=np.uint8), cv2.IMREAD_COLOR)
im = Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))
print(im.mode, im.getbands(), np.array(im).dtype)
if nchannel == 1:
##im = im.convert('L')
# im.save('D://' + name + "G.tiff", dpi=(300, 300), compression='tiff_deflate')
# im = PIL.ImageOps.invert(im)
im = im.convert("L")
print(im.mode, im.getbands(), np.array(im).dtype)
im.save('D://' + name + ".tiff", dpi=info['dpi'], compression='tiff_adobe_deflate')
else:
im.save('D://'+name + ".tiff", dpi=info['dpi'], quality=80, compression='jpeg')
# print("Done '{}'".format(name))