Clear Filters
Clear Filters

Using imfill on multiple images

5 views (last 30 days)
myPath= 'E:\conduit_stl(smooth contour)\Collagen Contour Slices\';
fileNames = dir(fullfile(myPath, '*.tif'));
C = cell(length(fileNames), 1);
for k = 1:length(fileNames)
filename = fileNames(k).name;
C{k} = im2bw(imread(filename));
filled = imfill(C,'holes');
end
I have this code to import multiple images from a folder into MATLAB. Though now I would like to perform a fill on all the images. However, when attempting this, an error stating: "Expected input number 1, I1 or BW1, to be one of these types: double, ... etc" I tried converting the images into double precision, though that just resulted in: "Conversion to double from cell is not possible."
This is most likely due to the structure type, the images are 'housed' in, but I have no idea concerning that.
Help on this would be greatly appreciated.

Accepted Answer

Ahmed Ismail
Ahmed Ismail on 9 Jun 2016
C(256,256,length(fileNames)) = uint8(0);
C_filled = C;
se = strel('disk', 2, 0);
for k = 1:length(fileNames)
C(:,:,k) = im2bw(imread(fileNames(k).name));
C_filled(:,:,k) = imfill(imclose(C(:,:,k), se),'holes');
end

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!