Tif格式图片的读取与保存
目录
- CV读取
- Tiff
- skimage
在做比赛和科研过程中,经常会遇到Tif格式图片的读取与保存,特此开帖,总结使用过程中的一些问题与各种库的特点。写的比较浅薄,欢迎补充与指正。
CV读取
CV2用IMREAD_UNCHANGED可以读unit 16位 多通道tif格式,但不知道为什么读不了14G的原始数据image.tif,可能图太大了
且用CV2读图,查看img.shape时,少了一维,(其实图片本身还是三维的)
import cv2img = cv2.imread('./image_5.tif', cv2.IMREAD_UNCHANGED)
print(img.shape)
Tiff
- 通过tiff.imsave保存的图片,与原始数据相同,但缺少了头文件,导致在PS读取时变为灰度图。
import tifffile as tiff
import numpy as npimg = 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 + 10000n = n+1tiff.imsave('./image_%d.tif'%n, img[:, :, 50000:]) #tiff.imsave 保存图片
- 利用tiff读取,numpy的tofile将数据保存为raw格式。该格式保存的数据信息与原图相同。用PS读取raw格式时,需要指定头文件读取方式。
import numpy as np
import tifffile as tiff
from tqdm import tqdmimg = tiff.imread('./init_image/image.tif')
img = img.transpose([1, 2, 0])
h, w, c = img.shape
print(img[:, :10000, :])
print(img.shape)
print('---------------')for i in range(0, w, 10000):col_start = icol_end = i+10000 if i+10000<=w else wcrop_img = img[:, col_start:col_end, :]crop_img.tofile('new_image_%d.raw'%( i//10000 + 1)) #利用numpy中array的函数tofile将数据写入文件break
- 上述的raw格式文件,利用ps软件另存为tif格式后,数据被四舍五入。
skimage
from skimage import io as io
img = io.imread("a.tif")
io.imshow(img)
io.show()
Tif格式图片的读取与保存相关推荐
- MATLAB编程:简易读取分割存储 tif 格式图片
MATLAB编程:简易读取分割存储 tif 格式图片 前言 一.介绍 二.MATLAB实现 三.总结 前言 本博主使用的MATLAB版本是2020b,这个版本可以使用许多有趣的扩展APP,本节将会 ...
- 【成功实现】python对tif图片的读取与保存
读取tif图片: import tifffile as tiff import numpy as np img = tiff.imread('a.tif') print(img.shape) 输出形状 ...
- ios保存gif到相册_iOS相册中的GIF图片的读取与保存
大家都知道iOS的系统相册是不支持gif图片预览的.但是,这并不代表系统相册不能保存和读取gif图片.通过Safari长按gif图片,选择保存到相册,这时保存到相册里的图片就是gif的,虽然它不会动. ...
- android 将bitmap存为 bmp格式图片大小,把bitmap保存成 BMP的格式 并且位深度为1
生成图片的要求:图像格式采用单色位图文件格式(BMP) 要求bmp的位深度为1 参考: 代码有点小瑕疵 : bitmap的图片宽度要求是:8的整数倍 /** * 将Bitmap存为 .bmp格式图片 ...
- 使用winfrom+EmguCV进行图片的读取和保存
要使用EmguCV,首先需要去官网下载安装包(除了下载安装包,还有其他几种方式).安装完成后,得配置环境变量.这里不再赘述.网上的教程很多.我这里分享一个官网的下载链接:https://sourcef ...
- 纯C++实现24位bmp格式图片的读取和修饰
问题:现有一张bmp图片,要求将它读取到程序中并进行灰度化.水平翻转.模糊.茶色滤镜四种效果的一种,并输出新图片,如下所示: 命令行输入: 其中: 参数1:-b/g/s/r,先后表示blur(模糊), ...
- VS2015实现bmp格式图片的读取
预备知识:掌握一些mfc基本的控件用法以及bmp格式的图片的一些内容,当然不知道也无伤大雅. step1:新建基于对话框的mfc工程 step2:拖控件 然后将PictureControl的ID随便改 ...
- opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录
对于此功能其实很简单:主要是在c++方面的字母+数字的拼接问题存在一定的问题.C++数字字母拼接问题: 1 #include <fstream> 2 #include <string ...
- Java中tif转png,tif格式图片转换为gif、png、jpg格式(Java实战)
tif的格式的图片通常很大,且不能被浏览器直接预览,一般处理方案都是服务端将其转换为jpg.png等格式的图片,再由前端进行展示. 网络上也有很多转换格式的样例,但大都比较麻烦,本次实践使用开源组件 ...
- 转自博客园- 林梦然+++opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录
对于此功能其实很简单:主要是在c++方面的字母+数字的拼接问题存在一定的问题.C++数字字母拼接问题: 1 #include <fstream> 2 #include <string ...
最新文章
- 老实工作没有其他收入,为什么还要补缴个税?
- .net平台下C#socket通信(上)
- oracle查看数据库剩余空间,Oracle 查看数据库空间使用情况
- Tomcat部署项目的几种常见方式
- 软件工程---08.软件测试
- 使用密钥登录CentOS系统(基于密钥的认证)
- QML工作笔记-PC端和Android端布局错位问题
- 过滤器链模式PK匿名方法实现,哪个更优雅?
- 路由器有一个android设备连接不上,Android http连接 – 多个设备无法连接同一台服务器...
- Docker 基础 ( 二十 ) 部署Redis集群,问题记录
- 店铺二维码:如何生成大众点评二维码
- 课后习题讲解(免费)高数下册
- Excel:VBA编程入门(一)
- ORACLE基础之oracle锁(oracle lock mode)详解
- CentOS 7.4安装配置Oracle 12cR2 12.2.0.1.0
- np.isfinite_带有Python示例的math.isfinite()方法
- android 快速实现图片压缩与上传
- 新概念二册 Lesson 36 Across the Channel横渡海峡(非限定性定语从句)
- 什么是目标检测?理论+实操(github全面解析)?(持续更新中)
- 十三五期间,北京智慧交通建设内容有哪些?怎么建?
热门文章
- 虚拟机文件无法复制到主计算机,VMware 物理机可以复制文件到虚拟机,却无法从虚拟机复制文件到物理机(已解决)...
- 腾讯视频qlv格式转换mp4普通视频方法
- OFDM载波间隔_OFDM之频域
- python怎么过验证,python用户验证怎么弄
- 认知诊断理论的前世今生
- 项目管理的四大模型,PM必须懂!
- Kettle连接mysql错误 org.pentaho.ui.xul.XulException: java.lang.reflect.InvocationTargetException
- java回溯_java实现回溯算法
- OCM实验-备份恢复-控制文件
- excel vba saveas 另存为使用方法