背景

使用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 {}

".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读取tiff文件进行波段计算_python+tifffile之tiff文件读写方式相关推荐

  1. python读取mysql以html形式输出_python实现处理mysql结果输出方式

    在运维过程中,经常需要读取mysql的结果输出并进行响应的处理,这节介绍如何用Python读取mysql结果表并进行相应的整理. 进行mysql结果文件输出: mysql -h10.20.10.207 ...

  2. python获取excel某一列所有值-Python读取Excel一列并计算所有对象出现次数的方法...

    第一种方法 import pandas as pd from collections import Counter data = '参赛信息.xlsx' data = pd.read_excel('参 ...

  3. python读取tiff影像_python+tifffile之tiff文件读写方式

    背景 使用python操作一批同样分辨率的图片,合并为tiff格式的文件. 由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好. 通过搜索发现了两个比较有用的包:TiffCaptu ...

  4. python读取tiff文件_python+tifffile之tiff文件读写方式

    背景 使用python操作一批同样分辨率的图片,合并为tiff格式的文件. 由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好. 通过搜索发现了两个比较有用的包:TiffCaptu ...

  5. python读取视频占用内存太大_Python 读取大文件内存占用检测示例

    导读热词对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! python读写文件的api都很简单,一不留神就容易踩"坑".笔者记录 ...

  6. python读取数据的函数详解_python之文件读写详解

    打开文件 函数open() 参数说明: file:文件路径 mode: 文件的读写方式,默认'r',只读方式: buffering:设置缓冲策略,0用于二进制文件,1为行缓冲,用于文本模式:默认二进制 ...

  7. python读取序列5之后的数据_Python 基本功: 5. 数据序列化

    这篇文章紧接着前篇:多多教Python:Python 基本功: 4. 读写文件​zhuanlan.zhihu.com 仔细阅读的小伙伴会发现,在基本功4 里最后的一个示例中,我们读取解析了文件中的内容 ...

  8. python读取数据的函数详解_python如何从文件读取数据及解析

    python如何从文件读取数据及解析 读取整个文件: 首先创建一个文件,例如我创建了一个t x t文件了. 然后我想读取这个文件了,我首先将上面的这个文件保存在我即将要创建的Python的文件目录下, ...

  9. python打开文件夹的权限_python修改linux中文件(文件夹)的权限属性操作

    今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充 Linux的权限不是很细致,只有RWX三种 r(R ...

最新文章

  1. SLF4J 的几种实际应用模式--之二:SLF4J+Logback
  2. 干燥剂变身“配重剂”,究竟有多少商家在休闲零食市场浑水摸鱼?
  3. 计算机网络期中考试题周静,期中考试优秀作文
  4. 【人脸对齐-Landmarks】人脸对齐算法常用评价标准
  5. linux下C语言中的flock函数用法
  6. “光伏进社区” 应及早谋划布局
  7. python 朋友圈自动回复评论_Python自动回复微信好友新年祝福
  8. 总结几种简单实用的数据恢复技巧
  9. Charles proxy tools 移动开发调试
  10. java 分布式同步锁_java编程进阶之路:回归锁的本质,探索分布式锁之源头
  11. 保健品消费者需求调研内容及设计
  12. 恩智浦智能车竞赛电磁直立组国一之速墨二队2018回顾与总结
  13. HDU6148-Valley Numer【数位dp】
  14. [1183]Clickhouse数据表数据分区partition数据生命周期操作
  15. 《wish官方运营手册》读书笔记
  16. 面经分享|中科院老哥的算法开发岗面经总结
  17. 七牛网CEO的架构师7种能力和学习线路图
  18. 模拟输出质点轨迹坐标
  19. ncnn param文件及bin模型可视化解析
  20. 论文重复率超过多少不能发表?

热门文章

  1. Shell编程之通配符和用户自定义变量
  2. 史上最全 yum 入门使用教程和常见错误解决办法
  3. 用委托来实现IEqualityComparer接口
  4. 【资源】史上最全数据集汇总
  5. java实现多对多关系的方法_Hibernate一对多关联双向关联代码实现分享
  6. 华为鸿蒙os2.0系统何时搭载手机,鸿蒙OS 2.0系统正式发布!余承东:明年华为系手机将会搭载...
  7. 嘉兴python培训_嘉服集团
  8. 搜狗浏览器怎么新建隐私窗口 搜狗浏览器开启隐私窗口教程
  9. win7纯净版镜像系统安装教程
  10. RTSP播放器开发过程中需要考虑哪些关键因素