Find contour of 2D object in image in matlab

前端 未结 1 1867
猫巷女王i
猫巷女王i 2021-01-16 03:43

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

相关标签:
1条回答
  • 2021-01-16 03:57

    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;
    
    0 讨论(0)
提交回复
热议问题