MATLAB Answers

Info

This question is closed. Reopen it to edit or answer.

How to save images into one multipagefile tiff file?

1 view (last 30 days)
Veronika
Veronika on 22 Apr 2017
Edited: Walter Roberson on 22 Apr 2017
Dear all,
I have this code for creating and saving binary images into one tiff multipagefile. But I have mistake somewhere in for loop, respectively in it´s location.
clc;
close all;
clear;
workspace;
format long g;
format compact;
fontSize = 20;
folder = 'C:/Users/ced0005/DP/DP_framework/DICOM/slicesCT/';
if ~isdir(folder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', folder);
uiwait(warndlg(errorMessage));
return;
end
filePattern = fullfile(folder, '*.dcm');
theFiles = dir(filePattern);
for k = 1 : length(theFiles)
baseFileName = theFiles(k).name;
fullFileName = fullfile(folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
grayImage= dicomread(fullFileName);
subplot(1, 2, 1);
imshow(grayImage, []);
axis on;
title(baseFileName, 'FontSize', fontSize);
drawnow;
[rows, columns, numberOfColorChannels] = size(grayImage);
if numberOfColorChannels > 1
% % Máme barevný obraz, musíme ho převést na černobílý = vybereme %zelený kanál
grayImage = grayImage(:, :, 2); % zelený kanál
end
eq_grayImage = histeq(grayImage);
% Práh pro vytvoření binárního obrazu okolí
thresholdValue = 900;
binaryImage_okoli = grayImage > thresholdValue;
% Odstranění okolí.
binaryImage_okoli = imclearborder(binaryImage_okoli);
% Vyplnění otvorů.
binaryImage_okoli = imfill(binaryImage_okoli, 'holes');
% Vymazání menších otvorů.
binaryImage_okoli = bwareaopen(binaryImage_okoli, 1150);
% Roztažení binárního obrazu pro přesnější segmentaci
se = strel('line',5,100);
binaryImage_okoli= imdilate(binaryImage_okoli,se);
subplot(1, 2, 2);
imshow(binaryImage_okoli, []);
title('Binarizovaný obraz', 'FontSize', fontSize);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
drawnow;
baseOutputFileName = sprintf('Binarizace_okoli_%3d.png', k);
fullOutputFileName = fullfile(folder, baseOutputFileName);
imwrite(logical(binaryImage_okoli), fullOutputFileName);
fprintf('Uloženo %s.\n', fullOutputFileName);
*if k == 1
imwrite(binaryImage_okoli,'myMultipageFile.tif')
else
imwrite(binaryImage_okoli,'myMultipageFile.tif','writemode','append')
end*
end
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
set(gcf, 'Name', 'Binarizace testovacích CT skenů', 'NumberTitle', 'Off')
Please, where I have mistake.
Can you advice me? Thank you for your answers.

Answers (0)


Translated by