如何在图像扩张不同程度的“厚度”?

4视图(30天)
给定一个二进制图像泰森多边形法的设计,我想扩张的白线,他们将有不同厚度的形象。到目前为止,我使用了函数 imdilate 扩张,然而,它使所有线相同的厚度。我怎么能让对面的厚度是不同的图像(类似一个梯度)?我希望这是有意义的。
提前谢谢你!
img_dilate = imdilate (img strel(“磁盘”,d));% d控制厚度的一个整数。
连接两个样品图片。

答案(1)

安德鲁•陈
安德鲁•陈 2017年10月5日
你好,
我的新的图像处理和形态学操作,但我已经做了一些自己挖你的问题。我不认为我有一个完整的答案也许有一个组件,它可以帮助你更接近你的答案。基本上,我在网上发现了一些代码,允许您定义自己的结构化元素,然后在一个循环中形态的手动操作。这是在一个问题的答案 Matlab的答案后 我已经做了所有的整数输入依赖于结构元素大小,这些输入实际上依赖于结构元素即改变结构元素会自动被考虑在形态学操作(通过大小()函数)。这是代码:
strel = [1 1 1 1 1; 1 1 1 1 1);%结构元素,必须在第二奇数长度(列#)维度
C = padarray(泰森多边形法,大小(strel, 1) 1(大小(strel, 2) 1) / 2]);
dialated_img = false(大小(泰森多边形法));
i = 1:尺寸(C, 1)——(大小(strel, 1) 1)
j = 1:尺寸(C, 2)——(大小(strel, 2) 1)
dialated_img (i, j) =和(和(strel&C(我+(大小(strel, 1) 1), j: j +(大小(strel, 2) 1))));
结束
结束
使用这种方法的权力扩张(而不是Matlab的内置功能)会,也许通过一些聪明的循环,也许只有使用一个结构元素在一组有限的尺寸的图像,然后改变图像的其他区域的元素,您可以实现您正在寻找的结果。
当然,它可能是,您可以使用内置的形态在Matlab的业务,然后叫他们在某些地区和地区缝合到一起来实现所需的结果。
最好的运气!
安德鲁

类别

找到更多的在泰森多边形法图帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!