我正在寻找一种以编程方式重新创建以下效果的方法:

提供输入图片:
输入http://www.shiny.co.il/shooshx/ConeCarv/q_input .PNG

我想迭代地应用“笔画”。效果。结果 第一步看起来像这样:
第1步http://www.shiny.co.il/shooshx/ConeCarv/ q_step1.png

第二步是这样的:
替代文字http://www.shiny.co.il/shooshx/ConeCarv/ q_step2.png

等等。

我认为这将涉及某种边缘检测,然后以某种方式跟踪边缘 是否有一种已知的算法以高效和稳健的方式做到这一点?

有帮助吗?

解决方案

根据这个,基本上是自定义算法线程

  

围绕像素取3x3邻域,对alpha通道进行阈值处理,然后查看像素周围的8个像素中是否有任何一个像素值。如果是这样的话   给定半径的圆,中心位于像素处。在内部/外部,通过阈值化的alpha通道进行调制(否定进行另一侧)。如果圆半径大于像素(可能是),则必须对较大的邻域进行阈值处理。


  

这是使用灰度形态学操作实现的。这也是用于扩展/收缩选择的相同技术。基本上,要划分选择(或alpha通道)的中心,人们要做的是首先制作两个单独的选择副本。第一个选择将通过笔划的半径扩展,而第二个选择将缩小。然后通过从第一个选择中减去第二个选择来获得笔画的不透明度。

     

为了做内外笔画,你会收缩/扩展两倍半径并减去与原始选择相交的部分。

     应当注意,最通用的形态学算法需要O(m * n)个运算,其中m是图像的像素数,n是“结构元素”中的元素数。但是,对于某些特殊情况,可以优化O(m)操作(例如,如果结构元素是矩形或菱形)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top