图形课作业:彩色图像Canny边缘检测Java实现技术咨询
手动Java实现Canny边缘检测(基于CIELab*色彩空间)
最近在肝图形课的作业,要求给彩色图像做边缘检测,老师推荐用Canny算法。看着算法公式挺直观的,就不想用现成的图像处理库,打算自己从零用Java写完整程序,挑战一下!
目前已经搞定的环节:
- 用Java Swing搭好了程序的GUI窗口,能加载和显示图像了
- 把输入图像以sRGB格式读取后,成功转换成了CIELab*色彩空间(这是作业的硬性要求,必须在这个空间里处理,不能直接用RGB)
- 已经实现了Sobel算子的计算,算出了水平梯度
Cx和垂直梯度Cy,这一步是后续计算梯度幅值和方向的基础
接下来还要完成的步骤:
- 基于
Cx和Cy计算每个像素的梯度幅值与方向 - 实现非极大值抑制,剔除边缘上的非峰值点,让边缘更细
- 用双阈值法筛选强边缘和弱边缘,最后完成边缘连接,得到最终的检测结果
如果有大佬在手动实现Canny或者对CIELab*空间的边缘检测有经验,欢迎给点建议呀!
内容的提问来源于stack exchange,提问作者thepalacsinta007
相关产品推荐
相关产品推荐

