I have this problem: I have this 2D binary image and I want to extract the contour of the object in this image. This is the image:
I want to have the same matrix i
If you have the Image Processing Toolbox you can use bwperim
BW = imread('http://i.stack.imgur.com/05T06.png');
BW = BW(:,:,1) == 255;
boundary = bwperim(BW);
imshow(boundary)
Ultimately what this does, is performs a convolution on the original image to erode it and then computes the difference between the eroded version and the original version. So if you don't have the toolbox you can do this with conv2
(or convn
in 3D).
eroded = ~conv2(double(~BW), ones(3), 'same');
boundary = BW - eroded;
Or in 3D:
eroded = ~convn(double(~BW_3D), ones(3,3,3), 'same');
boundary = BW_3D - eroded;