Matlab 提取二值图像中心线 (Matlab extract centreline of binary image)
close all; clear all; clc;
binaryImage = imread('0.png');
% Skeletonize
skeletonizedImage = bwmorph(binaryImage, 'skel', inf);
% distance transform.
Dist_Img = bwdist(~binaryImage);
% multiply
CenLine_Img = Dist_Img .* single(skeletonizedImage);
% binarize
T_level = 0.65;
CenLine_Img = uint8(255*im2bw(CenLine_Img, T_level));
% display
figure(1),
imshow(skeletonizedImage, []);
figure(2),
imshow(Dist_Img, []);
figure(3),
imshow(CenLine_Img);
C = unique(CenLine_Img);
Referring webpage: http://www.mathworks.com/matlabcentral/answers/43506-polygon-width-and-centerline
