Shader特效——“Canny边缘检测”的实现 【GLSL】
发表于2018-02-06
在介绍这篇文章之前,发现网上关于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