Python 一种用于模糊或退化图像的OpenCV动态分割方法

Python 一种用于模糊或退化图像的OpenCV动态分割方法,python,opencv,image-processing,Python,Opencv,Image Processing,我已经为给定的图像实现了分割,但是图像可能会根据不同的颜色而有所不同。如果前景仅包含空心圆/实心圆,如何将背景与前景分开。我的目标是根据图像的颜色自动找到阈值。 [图片样本][1] import numpy as np import cv2 import os image =cv2.imread("cropped2/pnr6.jpg") img = image.copy() MARKER_LOWER_BOUND = ( 0, 0, 0) MARKER_UPPER_BOUND = (255,

我已经为给定的图像实现了分割,但是图像可能会根据不同的颜色而有所不同。如果前景仅包含空心圆/实心圆,如何将背景与前景分开。我的目标是根据图像的颜色自动找到阈值。 [图片样本][1]

import numpy as np
import cv2
import os

image =cv2.imread("cropped2/pnr6.jpg")
img = image.copy()
MARKER_LOWER_BOUND = ( 0,  0,  0)
MARKER_UPPER_BOUND = (255, 255, 25)
marker_seg_mask = cv2.inRange(img, MARKER_LOWER_BOUND, MARKER_UPPER_BOUND)
cv2.imshow("thresold.jpg",marker_seg_mask)

查看
cv2.adaptiveThreshold()
函数,该函数可以满足您的需要。 从:

自适应阈值

在上一节中,我们使用全局值作为阈值。 但在图像具有不同颜色的所有条件下,它可能都不好 不同区域的照明条件。在这种情况下,我们选择 自适应阈值。在此,算法计算阈值 对于图像的小区域。所以我们得到了不同的阈值 同一图像的不同区域,它为我们提供了更好的结果 具有不同照明的图像


你能不能解释清楚你想做什么?您希望得到什么结果?@MarkSetchell对于基于OMR的应用程序,我正在尝试从填充圆中计算卷数。但是,对于不同质量和颜色的图像,分割效果并不理想。所以我需要知道哪种技术可以更好地分离空心圆和填充圆。我怎样才能知道圆圈是否已填充?