题目地址:gzr2017/ImageProcessing100Wen
#第2题
今天完成了第41至43题,Canny边缘检测,之前在学习这一部分的知识时,感觉总体上理解很容易,唯一比较难理解的地方应该只有非极大值抑制的方向是指梯度方向而非边缘方向这一个小知识点,但是这两天用python手撕下来之后感觉还是有很多地方理解没到位,对numpy函数的调用还是不熟练,现在看来,每天花一点时间手撕一下这些基础的图像处理知识还是很有必要的,以下是本函数的调用结果示意图:
原图像:
本函数(TL=30,TH=100)执行结果:
使用opencv中的Canny函数(TL=170,TH=230)的结果:
在调用时间方面,两者相差不大,但是从结果上来看,自己造的轮子只是基本上可以完成边缘检测功能而已
在很多细节方面,尤其是中间边缘角度的量化那里,与库函数相比还是有一定的差距,自己的轮子只是简单的将角度量化为4种情况,所以在结果上,检测到的边缘也更为简单,只有4种情况,与实际边缘相比存在一定误差,而库函数的边缘检测结果显然在一点上处理更好
因此,日常使用的话,直接调用opencv的库函数即可,手撕函数造出来的方轮子一般只用于加深理论理解
如有任何问题或错误,欢迎在评论区讨论和指正