如何在iOS Swift中使用Sobel边缘检测/ Canny边缘检测在有限的边缘范围内使用钢笔工具为草图着色?

时间:2018-09-28 10:31:05

标签: ios swift4 gpuimage

我正在使用function limpia() { $regex = [System.Text.RegularExpressions.Regex] write-host "FUNCION LIMPIA ARCHIVO TXT" -fore white $a = get-content $root\UNB\TMP\FACT_TEMPORAL.txt | Foreach-Object { $regex::Replace($_, '^[.! pÿ>i@]{1,}', '') } | Foreach-Object { $regex::Replace($_, '^0 {2,}', '') } | Foreach-Object { $regex::Replace($_, '>', '') } | Foreach-Object { ($_.TrimEnd() )} | Where-Object {$_ -ne ""} | set-content $root\UNB\FINAL_TEXTO\FACT_FINAL.txt } 检测边缘并应用GPUImageSobelEdgeDetectionFilter或GPUImageCannyEdgeDetectionFilter。现在我的要求是:

如何从该图像中获取坐标点,以便可以在封闭的边界内绘制图形。

从图像中检测边缘

GPUImage

现在,我正在尝试检测点,以便可以在封闭的边界内创建一个单独的图层以进行绘制。

  • 例如1. orgnl图像2.已过滤的sobelEdgeDetection / GPUImageCannyEdgeDetectionFilter图像

    1. enter image description here 2. enter image description here

    我正在使用钢笔工具绘制颜色。 如果我在着色时在圆圈内着色,则在选择其他接触点之前,它不应超出圆圈边界。

    基于接触点,我想在封闭的边界内对其进行着色。

我也尝试了Floodfill算法。它给出不同的输出。不完全是我想要的输出。

我该如何申请?

1 个答案:

答案 0 :(得分:3)

嘿,Pradip您正在寻找精确的泛滥算法,它将解决您的问题。

填充算法简要说明-

泛洪填充算法采用三个参数:起始节点,目标颜色和替换颜色。该算法查找通过目标颜色的路径连接到起始节点的阵列中的所有节点,并将其更改为替换颜色。

为您链接研发以及obejective-c中的演示。

  1. https://ilearnios.wordpress.com/2013/07/18/scanline-flood-fill-algorithm-with-or-without-tolerance-in-objective-c/
  2. https://lodev.org/cgtutor/floodfill.html
  3. https://github.com/Chintan-Dave/UIImageScanlineFloodfill(很棒的演示,由 Chintan-Dave)

    我还在项目中使用了Floodfill只是为了去除背景色,并且在上面的链接中找到了非常有用的内容。 希望对您有帮助