【发布时间】:2020-05-08 11:11:22
【问题描述】:
我正在尝试使用最新版本的 OpenCV 计算图像中有多少硬币,但我正在努力解决阴影问题。
正在使用 Canny Edge 检测器方法,但正如您在第二张图片中看到的那样,由于阴影,它没有按预期工作......关于如何处理这个问题的任何想法?
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (7, 7), 0)
median = np.median(image)
lower = int(max(0, 0.67 * median))
upper = int(min(255, (1.33) * median))
canny = cv2.Canny(blurred, lower, upper)
contours, hierachy = cv2.findContours(canny, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
coins = cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
cv2.imshow("Coins", coins)
【问题讨论】:
-
您是否尝试过使用边缘检测器的阈值?也尝试过滤掉图像中的灰色。
-
是的,我玩过门槛,但没有帮助。
-
使用 HoughCircle 方法设法做到了
-
是的,在大多数高对比度情况下,这是一个很好的解决方案。
标签: opencv image-processing opencv-contour opencv-python canny-operator