前言
度过了理论篇,相信这篇你读起来会轻松很多。本文尝试使用mean shift算法对图像进行降噪。如果你对这个算法还不清楚建议阅读我写的上一篇文章。
环境和依赖
- mac或者linux系统(win平台没有测试)
- g++ 和 cmake
- openCV
直接看代码:
主文件设置成了test.cpp
。
|
|
为了方便我先把cmake的配置文件先送上。一会在对代码进行解释。CMakeLists.txt
如下:
|
|
代码解释
要是看过之前理论篇的同学,不难理解,我要实现的的核函数对每个点的加权是一样的,没有越近就越大越远就越小。然后也没有使用自适应的步长。
我的大体思路是使用mean shift算法计算每个素点的收敛的值作为这个点新的灰度。这里面没有什么复杂的逻辑,所以很好理解。这里圆内判断条件,我进行了一定的优化使用正方形代替了圆进行计算。减少了循环的次数。
实验结果
这是我写的源代码git的传送门。欢迎学习的目的使用。:)
我将一直迷惑和无知,我是黄油香蕉君,再见。