本笔记说明如何对叠加物体的数量进行计数,并对其进行分割。
本文算法思路参考了Nash的思路,图像也是采用Nash的图像,为叠加硬币,链接:http://opencv-code.com/tutorials/count-and-segment-overlapping-objects-with-watershed-and-distance-transform/
本文涉及到的主要知识点如下:
1、距离变换。
2、基于分水岭变换的分割。
其中,本文采用基于标记符控制的分水岭分割,源该算法的思路来自冈萨雷斯的数字图像处理(MATLAB版)(第二版)。
算法过程如下:
1、对原始图像进行二值化。
2、对二值化后的图像进行距离变换,并归一化到0~1。
3、对距离变换以0.5为阈值进行二值化,之后获得连通分量的数量即为硬币的数量。
4、用sobel算子求梯度的幅度(因为梯度幅度图像沿物体边缘有较大模值&