我正在处理一些卫星图像,由16位.tiff
图像组成。颜色被编码为每通道16位。我想知道如何将这些图像转换为普通的8位RGB,以便进一步处理CNN。
我尝试过OpenCV (cv2.read('file',-1)
)和PIL (read('file')
),但这两个包无法识别和读取16位tiff图像。
发布于 2019-06-26 02:50:16
如果你想要的只是转换,你的.tiff
文件的色彩空间到RGB
。然后尝试:-
from PIL import Image
img = Image.open(r"Path_to_tiff_image")
img = img.convert("RGB")
img.save(r"path_of_destination_image")
上面的代码首先打开一个.tiff
图像,然后将其颜色模式更改为RGB
。然后将其保存到目标位置。
发布于 2021-09-23 12:25:59
嘿,我使用了tifffile来处理这个文件,以及我在另一个线程中找到的将16位图像重新缩放到8位的计算。
import numpy as np
import tifffile as tif
import cv2
image = tif.imread('/home/trance/test.tiff')
# Rescale 16-bit to 8-bit
img_rescaled = 255 * (image - image.min()) / (image.max() - image.min())
# Colourising image and saving it with opencv
img_col = cv2.applyColorMap(img_rescaled.astype(np.uint8), cv2.COLORMAP_INFERNO)
cv2.imwrite('/home/trance/test.png', img_col)
https://stackoverflow.com/questions/56760139
复制相似问题