为什么要写本文
科研图像处理中,尤其是涉及生物成像,图像数据格式基本是TIFF。天天打交道的小伙计,自然要深入了解一下啦。
Tiff是什么
Tiff是一种图像文件格式,和jpeg,png等等是一家人吧。Tiff好就好在它是多平台兼容,信息可以无压缩。关于tiff更多的信息可以戳下面这个链接获得。
http://www.fileformat.info/format/tiff/corion.htm
一个豆知识:Tiff是tagged image file format的缩写。
如何在MATLAB中保存
实际上在Matlab里使用imwrite( )是可以保存单张tiff图像的,但在磕盐中经常要处理一个stack的图像,所以imwrite( )就无法满足啦。
不过Matlab里提供了LibTIFF库的MATLAB入口:Tiff( )。如果想要获得更详细的信息,自行 doc tiff就可以啦。下面只摘取与保存图像相关的。
1. 创建TIFF文件,设置文件访问格式
MATLAB函数:obj = Tiff(filename, mode)
- obj就是创建的Tiff对象
- filename是文件名,要带上格式后缀吼,比如filename = ‘img.tiff’
- mode是文件访问类型,默认是‘r’读,保存文件的话这里要修改。对于单张图像,改成 'w' 就好啦,如果是多张的话,改成 'a' 。
![419ee545642f8b80166fc649aee4722a.png](https://i-blog.csdnimg.cn/blog_migrate/71361857bb25f185c66dfef2ad2a597c.png)
t
2. 设置图像标记
创建文件后,在写入数据前,要先设置以下标记:
- ImageWidth:图像宽度
- ImageLength:图像长度
- BitsPerSample:比特数/一个像素样本。磕盐中常用的三种叭,8位,16位,32位。
- SamplePerPixel:像素样本数/一个像素
- PlanarConfiguration:存储配置。chunky是连续存储每个像素的分量值,seperate是分开存储每个通道。在磕盐中处理的大多数为单通道灰度图像,这个设置都可。
- Photometric:图像数据颜色空间。有好多种可以选,具体可以doc看看。磕盐处理的灰度图像,一般选'MinIsBlack',即像素值为0时是黑色的。
- SampleFormat:像素样本格式。uint8和uint16时选择'UInt',32位single时选'IEEEFP'(IEEE浮点数据)
- Compression:磕盐中当然选无压缩啦
t
3. 把数据写入文件
写就完事惹
t.write(img);
t.close; %写完把文件关了
如何在MATLAB中读取
直接用imread( )的话只能读一张,读多张的话需要一波自行操作,写个循环反复读取拼接。
tiffInfo
源码
让我捯饬一下塞到github仓库叭,有空了更新