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 osimg_path = '../word_all'
out_txt_path = '../out_word_all.box'
out_tiff_path = '../out_word_all.tif'tiff_list = Nonewith open(out_txt_path, 'wb') as f:dir_list = os.listdir(img_path)cnt_num = 0for 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_numif cnt_num == 0:print('cnt_num == 0')tiff_list = new_grayelse: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 += 1os.chdir(pwd)tifffile.imsave( out_tiff_path, tiff_list )print('tiff_list shape:{}'.format(tiff_list.shape))
参考资料
可以读取tiff文件的工具:https://pypi.org/project/TiffCapture/
可以读写tiff的工具:https://pypi.org/project/tifffile/
How to read a signed 16-bit TIFF in python?
numpy添加新的维度:newaxis
numpy的numpy.delete()/insert()/append()函数
python+tifffile之tiff文件读写相关推荐
- python读取tiff文件进行波段计算_python+tifffile之tiff文件读写方式
背景 使用python操作一批同样分辨率的图片,合并为tiff格式的文件. 由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好. 通过搜索发现了两个比较有用的包:TiffCaptu ...
- python读取tiff影像_python+tifffile之tiff文件读写方式
背景 使用python操作一批同样分辨率的图片,合并为tiff格式的文件. 由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好. 通过搜索发现了两个比较有用的包:TiffCaptu ...
- python读取tiff文件_python+tifffile之tiff文件读写方式
背景 使用python操作一批同样分辨率的图片,合并为tiff格式的文件. 由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好. 通过搜索发现了两个比较有用的包:TiffCaptu ...
- 【python图像处理】tiff文件的保存与解析
tiff文件是一种常用的图像文件格式,支持将多幅图像保存到一个文件中,极大得方便了图像的保存和处理.python中支持tiff文件处理的是libtiff模块中的TIFF类(libtiff下载链接htt ...
- Python字符集编码和文件读写
Python字符集编码和文件读写 python中默认编码是ASCII,可以通过以下方式设置和获取: import sys print sys.getdefaultencoding() sys.setd ...
- python特训营-文件读写
课程目标 Python内置的文件读写操作 通过OS模块进行文件和文件夹操作 通过OS模块进行路径操作 Python内置的文件读写操作 • open() 打开或者创建一个文件 格式:open('文件路径 ...
- python json数据的文件读写操作
python json数据的文件操作 代码 read_write_json.py #!/usr/bin/env python # -*- encoding: utf-8 -*- "" ...
- python 获取窗口句柄_Python文件读写最详细的讲解
本文来自读者投稿,作者:黄同学 今天这篇文章来详细讲解一下Python中的文件读写. 1.文件读写的流程 1)类比windows中手动操作txt文档,说明python中如何操作txt文件? ① win ...
- python中io.textio_Python文件读写概述(IO操作、文件读写、stringiobytesio、序列化),python,的,小,总结,StringIOBytesIO...
IO操作 在进行文件的读写之前,需要说明几点.首先,运行的程序和读取的数据都会在内存中缓存. 进入到 程序或数据 内存 其次,用python程序进行文件的读写,需要创建一个小工具–文件流,用来处理数据 ...
最新文章
- Linux中iptraf命令详解(IP局域网监控工具)
- 使用 HTML5、CSS3 和 MathML 在 EPUB 3 中制作版式丰富的出版物
- matlab参数识别,教程:matlab参数识别(包括微分方程和simulink)
- 《HeadFirst Python》第一章学习笔记
- 结合图拉普拉斯的半监督学习
- php redis 签到,基于Redis位图实现用户签到功能
- 因果推断综述及基础方法介绍(一)
- visio 2013安装使用
- MSN网盘SkyDrive
- TL9000 电信业质量体系管理标准
- ubuntn 常用命令和快捷键汇总
- C语言猜数字游戏及关机程序
- 培训班和科班出来的程序员有什么不同之处?看完这个你就能明白!
- 策略模式Java实现
- Python入门(10)——宝可梦数据集探索
- 使用wxjava实现发表内容、预览信息以及推送文章
- 基于PL/SQL的数据库备份方法
- 加拿大滑铁卢大学计算机世界排名,滑铁卢大学世界排名
- 新支点国产服务器操作系统与虚拟化平台和云管理平台实现兼容
- Exchange2016将用户头像发布到全局地址列表(GAL)