目录

  • 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格式图片的读取与保存相关推荐

  1. MATLAB编程:简易读取分割存储 tif 格式图片

    MATLAB编程:简易读取分割存储 tif 格式图片 前言 一.介绍 二.MATLAB实现 三.总结 前言   本博主使用的MATLAB版本是2020b,这个版本可以使用许多有趣的扩展APP,本节将会 ...

  2. 【成功实现】python对tif图片的读取与保存

    读取tif图片: import tifffile as tiff import numpy as np img = tiff.imread('a.tif') print(img.shape) 输出形状 ...

  3. ios保存gif到相册_iOS相册中的GIF图片的读取与保存

    大家都知道iOS的系统相册是不支持gif图片预览的.但是,这并不代表系统相册不能保存和读取gif图片.通过Safari长按gif图片,选择保存到相册,这时保存到相册里的图片就是gif的,虽然它不会动. ...

  4. android 将bitmap存为 bmp格式图片大小,把bitmap保存成 BMP的格式 并且位深度为1

    生成图片的要求:图像格式采用单色位图文件格式(BMP)  要求bmp的位深度为1 参考: 代码有点小瑕疵 : bitmap的图片宽度要求是:8的整数倍 /** * 将Bitmap存为 .bmp格式图片 ...

  5. 使用winfrom+EmguCV进行图片的读取和保存

    要使用EmguCV,首先需要去官网下载安装包(除了下载安装包,还有其他几种方式).安装完成后,得配置环境变量.这里不再赘述.网上的教程很多.我这里分享一个官网的下载链接:https://sourcef ...

  6. 纯C++实现24位bmp格式图片的读取和修饰

    问题:现有一张bmp图片,要求将它读取到程序中并进行灰度化.水平翻转.模糊.茶色滤镜四种效果的一种,并输出新图片,如下所示: 命令行输入: 其中: 参数1:-b/g/s/r,先后表示blur(模糊), ...

  7. VS2015实现bmp格式图片的读取

    预备知识:掌握一些mfc基本的控件用法以及bmp格式的图片的一些内容,当然不知道也无伤大雅. step1:新建基于对话框的mfc工程 step2:拖控件 然后将PictureControl的ID随便改 ...

  8. opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录

    对于此功能其实很简单:主要是在c++方面的字母+数字的拼接问题存在一定的问题.C++数字字母拼接问题: 1 #include <fstream> 2 #include <string ...

  9. Java中tif转png,tif格式图片转换为gif、png、jpg格式(Java实战)

    tif的格式的图片通常很大,且不能被浏览器直接预览,一般处理方案都是服务端将其转换为jpg.png等格式的图片,再由前端进行展示. 网络上也有很多转换格式的样例,但大都比较麻烦,本次实践使用开源组件 ...

  10. 转自博客园- 林梦然+++opencv下指定文件夹下的图片灰度化(图片的读取与保存)-------简单记录

    对于此功能其实很简单:主要是在c++方面的字母+数字的拼接问题存在一定的问题.C++数字字母拼接问题: 1 #include <fstream> 2 #include <string ...

最新文章

  1. 老实工作没有其他收入,为什么还要补缴个税?
  2. .net平台下C#socket通信(上)
  3. oracle查看数据库剩余空间,Oracle 查看数据库空间使用情况
  4. Tomcat部署项目的几种常见方式
  5. 软件工程---08.软件测试
  6. 使用密钥登录CentOS系统(基于密钥的认证)
  7. QML工作笔记-PC端和Android端布局错位问题
  8. 过滤器链模式PK匿名方法实现,哪个更优雅?
  9. 路由器有一个android设备连接不上,Android http连接 – 多个设备无法连接同一台服务器...
  10. Docker 基础 ( 二十 ) 部署Redis集群,问题记录
  11. 店铺二维码:如何生成大众点评二维码
  12. 课后习题讲解(免费)高数下册
  13. Excel:VBA编程入门(一)
  14. ORACLE基础之oracle锁(oracle lock mode)详解
  15. CentOS 7.4安装配置Oracle 12cR2 12.2.0.1.0
  16. np.isfinite_带有Python示例的math.isfinite()方法
  17. android 快速实现图片压缩与上传
  18. 新概念二册 Lesson 36 Across the Channel横渡海峡(非限定性定语从句)
  19. 什么是目标检测?理论+实操(github全面解析)?(持续更新中)
  20. 十三五期间,北京智慧交通建设内容有哪些?怎么建?

热门文章

  1. 虚拟机文件无法复制到主计算机,VMware 物理机可以复制文件到虚拟机,却无法从虚拟机复制文件到物理机(已解决)...
  2. 腾讯视频qlv格式转换mp4普通视频方法
  3. OFDM载波间隔_OFDM之频域
  4. python怎么过验证,python用户验证怎么弄
  5. 认知诊断理论的前世今生
  6. 项目管理的四大模型,PM必须懂!
  7. Kettle连接mysql错误 org.pentaho.ui.xul.XulException: java.lang.reflect.InvocationTargetException
  8. java回溯_java实现回溯算法
  9. OCM实验-备份恢复-控制文件
  10. excel vba saveas 另存为使用方法