How to measure the average thickness at the center region of binary image
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Timilehin Oyinloye
el 21 de Mzo. de 2023
Comentada: Timilehin Oyinloye
el 22 de Mzo. de 2023
I have a binary image that has various objects (white pixels) in various positions. I want to determine the average thickness of each white object in the binary image at its center (as shown in the third image with red letters). I appreciate your support.
0 comentarios
Respuesta aceptada
Antoni Garcia-Herreros
el 21 de Mzo. de 2023
Hello Timilehin,
lear all
close all
I=imread("image.jpeg");
if length(size(I))>2
I=rgb2gray(I);
end
I=imbinarize(I);
I = imfill(I, 'holes');
BW2 = bwareaopen(I, 10); % Retain only large objects
r=regionprops(BW2,'Area','Centroid');
ApproxThick=zeros(size(r));
MeanCentralThick=ApproxThick;
Icopy=I;
for i=1:length(r) % Loop through all your objects
bwi = bwareafilt(Icopy, 1);
Icopy=logical(Icopy-bwi); % Subtract the objects from the image
ri=regionprops(bwi,'Area','Centroid');
BWSkel=bwskel(bwi);
ApproxThick(i)=ri.Area/sum(BWSkel(:)); % This would give you a good idea of the mean thickness of all the object
connec=bwconncomp(BWSkel);
[row,col] = ind2sub(connec.ImageSize,cell2mat(connec.PixelIdxList));
Mask=false(size(BWSkel)); % Mask of the skeletonize image containing only the central region
idxmin=floor(sum(BWSkel(:))*0.4); % Adjust these values to obtain the central region
idxmax=floor(sum(BWSkel(:))*0.6);
Mask(row(idxmin:idxmax),col(idxmin:idxmax))=BWSkel(row(idxmin:idxmax),col(idxmin:idxmax));
EuclImage = bwdist(~bwi); % Euclidean distance
Thickness=EuclImage(Mask);
MeanCentralThick(i)=2*mean(Thickness); % Average thickness of the central region
end
Hope this helps!
Más respuestas (1)
Image Analyst
el 21 de Mzo. de 2023
Basically you compute the Euclidean Distance transform and multiply it by the skeleton of the blobs.
See attached demo:
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!