use*_*485 3 matlab image-processing edge-detection
我想在MATLAB中使用数学形态学函数来找到can.png图像的边界.输入图像是:

我想得到一个边界,如:

我尝试使用不同的组合和参数使用strel,imerode,imdilate,但结果不够好(远远超出预期)
我的一个试用代码是:
a = imread ('can.png');
b = im2bw(a);
SE = strel('rectangle', [10 50 ]) ;
i2 = imdilate(b,SE);
figure(1); imshow(i2);
p = ones(4);
c = b - imerode(b,p);
figure(2); imshow(c);
Run Code Online (Sandbox Code Playgroud)
输出是:

任何身体可以帮助我,如何创建预期的图像(罐头的边界很薄的黑色背景,拜托?非常感谢你.