import cv2
import numpy as np
# 1. 图像预处理
img = cv2.imread("./water/water_coins.jpeg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
kernel = np.ones((3, 3), np.int8)
open1 = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=2)
# 2. 创建标记 (Markers)
# 2.1 确定是背景的区域 (bg)
bg = cv2.dilate(open1, kernel, iterations=1)
# 2.2 确定是前景的区域 (fg)
dist = cv2.distanceTransform(open1, cv2.DIST_L2, 5)
ret, fg = cv2.threshold(dist, 0.7 * dist.max(), 255, 0)
# 2.3 未知区域 (unknown)
unknown = cv2.subtract(bg, fg)
# 2.4 创建标记图像 (markers)
ret, markers
分水岭算法(Watershed Algorithm)教程:硬币分割实例
于 2025-03-03 17:44:58 首次发布

教程:硬币分割实例&spm=1001.2101.3001.5002&articleId=145994799&d=1&t=3&u=9c4df42164e74b51a0d0498ba2626964)
5100

被折叠的 条评论
为什么被折叠?



