我在用GPUImage
检测边缘并应用 GPUImageSobelEdgeDetectionFilter 或 GPUImageCannyEdgeDetectionFilter 。现在我的要求是:
我怎样才能从该图像中获取坐标点,以便我可以在封闭的边界内进行绘图。
检测图像边缘
var image_p: GPUImagePicture?
var filterImageview: UIImageView! // to display images
let inputImage = filterImageview.image
if let anImage = inputImage {
image_p = GPUImagePicture(image: anImage)
}
let filter1 = GPUImageSobelEdgeDetectionFilter()//GPUImageCannyEdgeDetectionFilter()
image_p?.addTarget(filter1)
image_p?.processImage()
let outputImage = filter1.imageFromCurrentlyProcessedOutput()
filterImageview.image = outputImage
现在我正在尝试检测这些点,以便我可以创建一个单独的图层来在封闭边界内进行绘制。
我也尝试过Floodfill算法。它给出了不同的输出。不完全是我想要的输出。
我该如何应用它?
嘿,普拉迪普,你正在寻找洪水填埋准确地说,它会解决你的问题。
Floodfill 算法简要说明 -
洪水填充算法采用三个参数:起始节点、目标颜色和替换颜色。该算法查找数组中通过目标颜色的路径连接到起始节点的所有节点,并将它们更改为替换颜色。
您的研发链接以及 Objective-c 中的演示。
- https://ilearnios.wordpress.com/2013/07/18/scanline-flood-fill-algorithm-with-or-without-tolerance-in-objective-c/
- https://lodev.org/cgtutor/floodfill.html
-
https://github.com/Chintan-Dave/UIImageScanlineFloodfill(很棒的演示由
金坦-戴夫)
我还在我的项目中使用了洪水填充,只是为了删除背景颜色,并发现上面的链接非常有用。
希望能帮助到你
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)