python / opencv3双阈值(上下)

时间:2018-05-23 19:01:05

标签: python opencv

我是python和opencv的新手。我想加载一个图像(灰度)并做一些特殊的阈值处理。我希望将亮度值保持在20-30之间,并使所有其他像素的值为零(或255)。我指的是亮度值低于20且超过30的像素。

我用inrange进行了一些测试,但没有运气。我也试过以下但是它只完成了一半的工作:

ret,img = cv.threshold(img,30,255,cv.THRESH_BINARY)

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用cv2.inrange()模块。可以为任何图像放置最小值和最大值。

在您的情况下,因为您使用单通道图像,您可以执行以下操作:

masked = cv2.inRange(im, 20, 30)
cv2.imshow('masked',masked)

在你的问题中,你提到cv.threshold()做了一半的工作。你需要做两次并减去结果才能完成全部工作!

ret1, img1 = cv2.threshold(im, 20, 255, cv2.THRESH_BINARY)
ret2, img2 = cv2.threshold(im, 30, 255, cv2.THRESH_BINARY)
cv2.imshow('double_threshold', img1 - img2)