pythontiff怎么设置_python+tifffile之tiff文件读写方式

背景

使用python操作一批同样分辨率的图片,合并为tiff格式的文件。

由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好。

通过搜索发现了两个比较有用的包:TiffCapture和tifffile。两者都可用pip安装。

其中前者主要用于读取tiff文件,后者可读可写。最终选择tifffile来合成tiff图片文件。

安装tifffile pip install tifffile

原理及代码

我的图片是8 bit灰度图。

每次读取之后,先升维: new_gray = gray_img[np.newaxis, ::]

然后再使用np.append添加到数组里。每append一次,相当于tiff增加一帧图片。 tiff_list = np.append(tiff_list, new_gray, axis=0)

所有操作完毕,则一次性保存到磁盘。 tifffile.imsave( out_tiff_path, tiff_list )

下面是我的完整代码: import cv2

import tifffile

import time

import numpy as np

import time

import os

img_path = '../word_all'

out_txt_path = '../out_word_all.box'

out_tiff_path = '../out_word_all.tif'

tiff_list = None

with open(out_txt_path, 'wb') as f:

dir_list = os.listdir(img_path)

cnt_num = 0

for dir_name in dir_list:

dir_path = os.path.join(img_path, dir_name)

img_list = os.listdir(dir_path)

pwd = os.getcwd()

os.chdir(dir_path)

for img in img_list:

print('dir_path:{}'.format(dir_path))

gray_img = cv2.imread(img, cv2.IMREAD_GRAYSCALE)

new_gray = gray_img[np.newaxis, ::]

print('gray_img shape:{}, new_gray shape:{}'.format(gray_img.shape, new_gray.shape))

#global cnt_num

if cnt_num == 0:

print('cnt_num == 0')

tiff_list = new_gray

else:

print('np.append')

tiff_list = np.append(tiff_list, new_gray, axis=0)

print('tiff_list shape:{}'.format(tiff_list.shape))

content = '{} 2 2 60 60 {}\n'.format(dir_name, cnt_num)

print(content)

f.write(content.encode('UTF-8'))

cnt_num += 1

os.chdir(pwd)

tifffile.imsave( out_tiff_path, tiff_list )

print('tiff_list shape:{}'.format(tiff_list.shape))

以上这篇python+tifffile之tiff文件读写方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值