take largest connected components in 2D slices and then reconstruct the 3D by stacking them

Technical Source
2 min readMar 7, 2022

--

Hello,

I am doing some morphological image processing. I want to remove the 4 unwanted blobs from the binary object(image below)

If I axially slice the image, I can take the largest connected component and exclude others like the image below:

I have tried the following codes which results binary size mismatch issues.

ind = 1;
sz = size(bi) % bi is the 3D mask with dimension: 170x256x100
final_mask = zeros(sz)
for i = 1:sz(3) %taking the 2D axial slice iterations-> 1:100
cc = bwconncomp(bi(:,:,i));
% disp(cc)
S = regionprops(cc, 'Area', 'PixelIdxList');%'Centroid');
ax_slice = zeros(sz(1), sz(2));
numPixels = cellfun(@numel, cc.PixelIdxList);
% disp(numPixels)
[biggest,idx] = max(numPixels); % taking the largest component number of pixels and their indices
ax_slice(cc.PixelIdxList{idx})= 1;
final_mask(:,:,i) = ax_slice;
end

Please let me know how to deal with it.

NOTE:-

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

  • erode image
  • dilate image
clc                         % clear command window
cla % clear axes
bi11 = bi; % create copy of 'bi'
bi1 = bi(:,:,170:end); % get top part
R = 2; % radius of structuring element
[x,y,z] = meshgrid(-R:R); % X Y Z 3d matrices
el = x.^2+y.^2+z.^2 <= R^2; % sphere of radius 'R'
bi2 = imerode(bi1, el); % erode image
bi3 = imdilate(bi2, el); % dilate image
bi11(:,:,170:end) = bi3; % replace original top part
isosurface(bi11,.95) % display 3d image
axis vis3d
light

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet