python+tifffile之tiff文件读写方式


Posted in Python onJanuary 13, 2020

背景

使用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文件读写方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
菜鸟使用python实现正则检测密码合法性
Jan 05 Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
python实现读取并显示图片的两种方法
Jan 13 Python
Python时间戳使用和相互转换详解
Dec 11 Python
Python with用法:自动关闭文件进程
Jul 10 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
django使用JWT保存用户登录信息
Apr 22 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
Django静态资源部署404问题解决方案
May 11 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
python 实现压缩和解压缩的示例
Sep 22 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 #Python
手动安装python3.6的操作过程详解
Jan 13 #Python
Python中join()函数多种操作代码实例
Jan 13 #Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 #Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 #Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 #Python
Python timeit模块的使用实践
Jan 13 #Python
You might like
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
法国体育用品商店:GO Sport
2019/10/23 全球购物
医院护士见习期自我鉴定
2014/04/10 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
医院党建工作总结2015
2015/05/26 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书