Anisotropy图像各向异性扩散
图像里的老熟人——各向异性扩散,在VS2015
配OpenCV 3.4.2
下也能玩得挺顺的。项目实现逻辑清晰,不绕弯子,适合想看明白算法逻辑又不想啃论文的你。
图像噪声多?想保边缘又不想糊掉细节?这个扩散算法就比较香。它不像传统平滑那样一刀切,而是根据图像局部特征来“区别对待”,有选择性地扩,效果还不错,尤其在细节复杂、边缘多的图像上更。
项目里用Gauss-Seidel
迭代来更新像素值,扩散系数函数设计也考虑到了梯度方向,结果既干净又有型。想自己动手试试也不难,cv::Mat
图像,cv::imread
和cv::imwrite
搞输入输出,配合自定义的扩散函数就能跑起来。
哦对了,别忘了调好时间步长Delta t
,太大容易炸图,太小又磨时间。实测下来,稳定性和效率都得靠它平衡。
你要是之前没玩过这类算法,可以先跑一遍现成代码,对着图像观察下变化效果;要是动手能力强,建议你尝试改下扩散系数函数,说不定能搞出更适合自己项目的版本。
想更深入了解的,还可以看看这些相关文章:
如果你正用OpenCV
搞图像去噪,或者对算法实现有兴趣,这份资源可以帮你起个好头。
下载地址
用户评论