I am trying to calculate the length of the crack (attached) however I can't figure out a way to remove the extra sections of the skeleton that branch off from the main crack path – crackoverlay.png.
Does anyone have any advice as to how I could do this?
clcclear variablesRGB = imread('crack2.jpg'); % Aquires original image
I = rgb2gray(RGB); % Creates greyscale image
BW = imbinarize(I,'global'); % Binarises it
BW2 = ~(bwmorph(BW,'majority',Inf)); % Fills in holes
BW3 = bwmorph(BW2,'skel',Inf); % Reduces image to center areas of the white sections
BW4 = bwmorph(BW3,'spur',Inf); % Removes spurs
Ov = imfuse(RGB,BW4); % Overlay of original image and skeleton
figure('Name','All_Steps')subplot(3,2,1), imshow(RGB), title('Original Image')subplot(3,2,2), imshow(BW) , title('Binarised Image')subplot(3,2,3), imshow(BW2), title('Binarised Inverted')subplot(3,2,4), imshow(BW3), title('Skeleton')subplot(3,2,5), imshow(BW4), title('Simplified Skeleton')subplot(3,2,6), imshow(Ov), title('Overlay')
Best Answer