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

版权声明:涉猎过的知识都像是不断汇入大海的涓涓细流,你怎么知道是哪条汇入的溪流让海洋成为海洋呢【转载请注明出处】 https://blog.csdn.net/panda1234lee/article/details/52265539

算法参考自:

http://blog.sina.com.cn/s/blog_676b40ec0100z2pt.html

http://blog.csdn.net/xiajun07061225/article/details/6926108


在写这篇文章的时候,发现网上关于canny的代码大多是基于C/C++,用GLSL的很少很少,甚至Github上也只有一份错误的实现,所以干脆自己实现一份,效果如图1,图2为github错误实现的效果(之所以说它错误,是因为它没有针对梯度方向的角度做Non-Max-Suppression,双阈值的限定也没有按照正统的算法来做),基本上和Sobel的效果差不多。

原图:



图1:



图2:



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

猜你喜欢

转载自blog.csdn.net/panda1234lee/article/details/52265539
今日推荐