首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MATLAB从32位tiff堆栈加载和保存单个图像

MATLAB从32位tiff堆栈加载和保存单个图像
EN

Stack Overflow用户
提问于 2015-06-25 14:33:46
回答 1查看 1.3K关注 0票数 0

我使用的是MATLAB_R2011a_student。我有一些图像堆栈保存为32位tiffs,有些超过1000帧。我希望能够从堆栈中取出一个特定的帧,并将其保存为32位tiff或某种可读格式,这样就不会从原始文件中丢失数据。目前,我的代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clear, clc;
k=163;
image=('/Users/me/Filename.tiff');
A = uint8(imread(image, k));
B=A(:,:,1);
J=imadjust(B,stretchlim(B),[]);
imwrite(J,'/Users/me/163.tif','tif');

(我假设它读取为8位,而我保存的方式不是最好的方法)无论哪种方式,这段代码都适用于似乎随机数量的帧(例如,在一个file.tiff中,上面的代码适用于帧1- 165,但165之后的帧都不起作用,对于不同的file.tiff,代码适用于帧1-8,但8之后的帧都不起作用)当它起作用时,我也会在输出图像中得到一条奇怪的水平线:

???使用TIFF时出错,指定的==>图像索引无效。

在52 X的==> readtif中出错,映射,详细信息=rtifc(参数);

在443X时输入错误,map = feval(fmt_s.read,==>,extraArgs{:});

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-06-25 15:10:56

处理tiff堆栈的最好方法(在我看来)是使用几年来可用的Tiff library。我必须承认我对OOP不是很了解,但是我已经足够理解加载一个tiff堆栈并操纵它,这就是我希望一年前看到的那种简单的演示,哈哈。

在下面的例子中,我加载了一个堆栈,并将其存储到一个3D数组中。我使用imfinfo来获取有关图像的信息,特别是图像/堆栈的数量和实际图像尺寸。如果需要,您可以选择使用适当的索引仅加载一个图像。请尝试下面的代码,并尝试使用它;您将理解我的意思。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clear
clc

%// Get tiff files you wish to open
hFiles = dir('*.tif');

%// Here I only have 1 multi-tiff file containing 30 images. Hence hInfo is a 30x1 structure.
hInfo = imfinfo(hFiles(1).name);

%// Set parameters.
ImageHeight = hInfo(1).Height; 
ImageWidth = hInfo(1).Width;
SliceNumber = numel(hInfo);

%// Open Tiff object
Stack_TiffObject = Tiff(hFiles.name,'r');

%// Initialize array containing your images.
ImageMatrix = zeros(ImageHeight,ImageWidth,SliceNumber,'uint32');
for k = 1:SliceNumber

    %// Loop through each image
    Stack_TiffObject.setDirectory(k)

    %// Put it in the array
    ImageMatrix(:,:,k) = Stack_TiffObject.read();
end

%// Close the Tiff object
Stack_TiffObject.close

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31053382

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文