gusucode.com > 精通Matlab数字图像处理与识别源码程序 > 精通Matlab数字图像处理与识别源码程序/chapter10/Code/ex10_8.m

    f = [0 1 2 3 4 5 4 3 2 1 0];
figure, h_f = plot(f);
seFlat = strel([1 1 1]) % 构造平坦(高度为0)的结构元素
fd1 = imdilate(f, seFlat); % 使用平坦的结构元素灰度膨胀
hold on, h_fd1 = plot(fd1, '-ro');
axis([1 11 0 8])
seHeight = strel([1 1 1], [1 1 1]) % 注意此处strel的用法,第一个参数的元素为0或1,表示结构元素的区域范围(形状),第二个参数表示结构元素中各个元素的高度
fd2 = imdilate(f, seHeight); %使用具有高度的结构元素的灰度膨胀
hold on, h_fd2 = plot(fd2, '-g*');
legend('原灰度1维函数f', '使用平坦结构元素膨胀后', '使用高度为1的结构元素膨胀后');