Shader特效——“Canny边缘检测”的实现 【GLSL】

发表于2018-02-06
评论0 2k浏览
在介绍这篇文章之前,发现网上关于canny的代码大多是基于C/C++,用GLSL的很少很少,甚至Github上也只有一份错误的实现,所以才有此篇,效果如图1,图2为github错误实现的效果(之所以说它错误,是因为它没有针对梯度方向的角度做Non-Max-Suppression,双阈值的限定也没有按照正统的算法来做),基本上和Sobel的效果差不多。

原图:

图1:

图2:

通过对比可见,图1的边界更加精细,而图2的边界较为粗糙,基本和Sobel后的效果没有差别。

算法参考自:
http://blog.sina.com.cn/s/blog_676b40ec0100z2pt.html
http://blog.csdn.net/xiajun07061225/article/details/6926108

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引