Fu Xianjun. All Rights Reserved
一、分水岭算法
1.1二值化
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('coins.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU) plt.imshow(thresh, cmap='gray') plt.show()
1.2形态学操作(移除噪声) 先使用开运算去除图像中的细小白色噪点,然后通过腐蚀运算移除边界像素,得到的图像中的白色区域肯定是真实前景,即靠近硬币中心的区域(下 面左边的图);膨胀运算使得一部分背景成为了物体到的边界,得到的图像中的黑色区域肯定是真实背景,即远离硬币的区域(下面中间的图)。 剩下的区域(硬币的边界附近)