边缘检测与边界拟合是确定图像中的客观对象的重要方法,是图像处理和计算机视觉中的基本问题。本文旨在探讨经典的边缘检测算法,尤其是Canny算法的原理,尝试在matlab软件环境上实现Canny算法检测图像边缘并采样二次多项式拟合的原理对图像边界曲线实现拟合,并使用MATLAB构建GUI软件,便于曲线拟合操作实现。
GUI封面:
操作步骤:
1、选择“select a picture”载入图像:
2、点击“start”开始:
可以通过下拉菜单选择检测方式,也可通过myCanny滑动块,根据不同的情况手动选择合适的边缘效果:
3、点击“boundary curve fitting”进入边界曲线拟合:
点击“get pixel”获取采样像素点,“reverse”按钮翻转二值图像黑白位置,根据图片亮度自行选择,用鼠标采集到点后为自动显示出点的坐标,采集完成后点击“my fitting”,使用编写的二次多项式曲线拟合函数进行拟合,星号为采样点的坐标位置,在下方的面板中显示出拟合方程表达式:
使用matlab自带的polyfit函数对结果验证,polyfit拟合曲线采用较细黑色线。
4、从结果来看拟合效果基本可以认定是一致的。二次多项式对于曲线的拟合实现实现简单,效果较好,尤其是对于边界满足二次曲线性质的部分来说,通过采样拟合得到边界平滑且贴近真实边缘。不足之处就在于,对于边界曲线较复杂的情况下,拟合效果不佳,需要将边缘进行一定的拆分,多次拟合才能满足需求。这个时候如何拆分曲线,拆分位置如何连接等,又带来的新的问题。
本次专业综合实践中,对经典的边缘检测算法,尤其是Canny算法的原理做了深入的学习,并了解、掌握了二次多项式曲线拟合的方法,通过matlab编程实践,将所学到的算法流程实际地编写出,并通过matlab的GUI设计学习,将编程结果可视化、可交互地展示了出来,界面效果友好,考虑比较全面。