matlab - Matlab 中的图像变形

标签 matlab image-processing edge-detection

我想在 MATLAB 中使用数学形态学函数来找到 can.png 图像的边界。输入图像是:

enter image description here

我想得到一个边界,例如:

enter image description here

我尝试使用不同的组合和参数使用 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);

输出是:

enter image description here

任何人都可以帮助我,如何创建预期的图像( jar 头的黑色背景和细边界,好吗?非常感谢。

最佳答案

对其形态梯度进行二值化,然后使用基本 SE 进行膨胀,填充孔并最终获得其边界(给定当前图像是微不足道的)。这不需要任何神奇的任意阈值。

enter image description here enter image description here

关于matlab - Matlab 中的图像变形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14450225/

相关文章:

c++ - OpenCV 背景分割/从单个图像中减去

matlab - 缩放 MATLAB/Octave 图,以便正确打印所有标签

Python interp1d 与 UnivariateSpline

matlab - Matlab 中最接近#define 的是什么?

python-3.x - 在 Matplotlib 中使用百分比累积计数增强对比度

opencv - 在 OpenCV 上使用 SVM 训练图像

regex - 如何在 MATLAB 中使用 REGEXP 选择字符串的一部分或另一部分

opencv - 如何在 OPENCV 中为模式识别定义我们自己的内核?

python - Python OpenCv提供错误 'cv2.cv.cvseq'对象没有属性 'total'

c++ - cvCanny 和 float 32 位 (IPL_DEPTH_32F) 问题