在做比赛和科研过程中,经常会遇到Tif格式图片的读取与保存,特此开帖,总结使用过程中的一些问题与各种库的特点。写的比较浅薄,欢迎补充与指正。
CV读取
CV2用IMREAD_UNCHANGED可以读unit 16位 多通道tif格式,但不知道为什么读不了14G的原始数据image.tif,可能图太大了
且用CV2读图,查看img.shape时,少了一维,(其实图片本身还是三维的)
import cv2
img = cv2.imread('./image_5.tif', cv2.IMREAD_UNCHANGED)
print(img.shape)
Tiff
- 通过tiff.imsave保存的图片,与原始数据相同,但缺少了头文件,导致在PS读取时变为灰度图。
import tifffile as tiff
import numpy as np
img = tiff.imread('./image_5.tif') #tiff.imread读图
print(img.shape)
img = img.transpose([1, 2, 0])
col = 0
n = 0
while(col + 10000 < 50362):
tiff.imsave('./image_%d.tif'%n, img[:, :, n*10000:(n+1)*10000])
col = col + 10000
n = n+1
tiff.imsave('./image_%d.tif'%n, img[:, :, 50000:]) #tiff.imsave 保存图片
- 利用tiff读取,numpy的tofile将数据保存为raw格式。该格式保存的数据信息与原图相同。用PS读取raw格式时,需要指定头文件读取方式。
import numpy as np
import tifffile

本文主要探讨在处理Tif格式图片时,使用CV2、Tiff库和skimage遇到的问题及特点。CV2能读取16位多通道Tif,但可能无法处理大尺寸图像,且读取的图像形状不完整。Tiff库保存的图片不含头文件,可能导致在Photoshop中显示为灰度图。skimage提供了不同的处理选项,详细讨论了如何保存和读取数据以保持原始信息。
最低0.47元/天 解锁文章
549

被折叠的 条评论
为什么被折叠?



