Tif格式图片的读取与保存

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

在做比赛和科研过程中,经常会遇到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 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值