【发布时间】:2020-01-25 01:25:02
【问题描述】:
我将自适应阈值应用于灰度图像,并且我想将正常阈值应用于该函数的返回图像。这不起作用,因为返回图像中的每个像素都设置为 255。我不明白为什么会这样,因为 imshow 会按照您的预期显示自适应阈值的返回图像,并且它会响应参数的变化。那么为什么每个像素都是 255,为什么我无法将该图像放入正常阈值函数中得到结果?
我使用的是 opencv 4.0.0。
image = cv2.imread('../photos/neptune.jpg', 0)
th2 = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 3, 2)
# doesnt matter what second parameter is.
_, thresh = cv2.threshold(th2, 200, 255, cv2.THRESH_BINARY)
【问题讨论】:
-
能否将您的 neptune.jpg 上传到 imgur 以便我们复制代码?
-
“adaptiveThreshold 函数返回图像中的每个像素的值都是 255”,是的,这就是阈值应该做的。它使图像成为来自
[0...255]的二值图像(灰度)。试试thresh = cv2.threshold(th2, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
标签: python opencv image-thresholding adaptive-threshold