bw = zeros(200,200); bw(50,50) = 1;
bw(50,150) = 1;bw(150,100) = 1;
% 初始化一个全0的200×200的数组
% 分别定义三个点值为1
D1 = bwdist(bw,'euclidean');
% 计算欧几里得距离
D2 = bwdist(bw,'cityblock');
% 计算cityblock距离
D3 = bwdist(bw,'chessboard');
% 计算棋盘距离
D4 = bwdist(bw,'quasi-euclidean');
% 计算类欧几里得距离
subplot(2,2,1), subimage(mat2gray(D1)), title('Euclidean')
hold on, imcontour(D1)
subplot(2,2,2), subimage(mat2gray(D2)), title('City block')
hold on, imcontour(D2)
subplot(2,2,3), subimage(mat2gray(D3)), title('Chessboard')
hold on, imcontour(D3)
subplot(2,2,4), subimage(mat2gray(D4)), title('Quasi-Euclidean')
hold on, imcontour(D4)
评论0