フィルターのクリア

View multiplage tiff in app designer

6 ビュー (過去 30 日間)
Josef Hinterlechner
Josef Hinterlechner 2020 年 11 月 12 日
編集済み: Subhadeep Koley 2020 年 11 月 14 日
I have the following function to import a Tiff-File, but it only shows the first slice of any tiff file. And I am currently not able to show the 2nd or nth slice in any way. How would this be possible?
function ImportTiffButtonPushed(app, event)
[file,path] = uigetfile('*.tif*');
if isequal(file,0)
else
imgPath = fullfile(path,file);
% open image and show it in the image box
tiffStack = imread(imgPath);
imshow(tiffStack, 'parent', app.UIAxes);
end

採用された回答

Subhadeep Koley
Subhadeep Koley 2020 年 11 月 12 日
編集済み: Subhadeep Koley 2020 年 11 月 14 日
For multi-page file, imread only reads the first slice in the file (or a specific slice specified by an optional argument).
If you have MATLAB R2020b, you can use the function tiffreadVolume to read entire TIFF file. Otherwise, you can loop through imread and stack each slices (might be time consuming if the TIFF file is large).
function ImportTiffButtonPushed(app, event)
[file ,path] = uigetfile('*.tif*');
if isequal(file, 0)
else
imgPath = fullfile(path, file);
% Read the tiff file into tiffStack
tiffInfo = imfinfo(imgPath);
tiffStack = imread(imgPath, 1);
numImages = numel(tiffInfo);
for idx = 2:numImages
temp = imread(imgPath, idx);
tiffStack = cat(3 , tiffStack, temp);
end
% Display multiple slices as rectangular montage
montage(tiffStack, 'parent', app.UIAxes);
end

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImages についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by