bwboundaries 関数を使うのはいかがでしょうか?
たとえば以下のようにオブジェクトの境界をトレースできます。
% Sample binary image
I = imread('toyobjects.png');
BW = ~imbinarize(I);
% Detect boundaries
B = bwboundaries(BW,'noholes');
figure
imshow(BW)
hold on
for kk = 1:numel(B)
plot(B{kk}(:,2),B{kk}(:,1),'r','LineWidth',2)
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/241749/image.png)