对于一张在 numpy 中形状为 (M, N)、在 OpenCV 中大小为 MxN、单通道的灰度图像,则cv2.inRange
取标量界限:
gray = cv2.imread(filename, cv2.CV_LOAD_IMAGE_GRAYSCALE)
gray_filtered = cv2.inRange(gray, 190, 255)
但是对于在 numpy 中具有形状 (M, N, 3) 且在 OpenCV 中具有三个通道且大小为 MxN 的 RGB 图像,您需要使边界与“通道大小”匹配。
rgb = cv2.imread(filename, cv2.CV_LOAD_IMAGE_COLOR)
rgb_filtered = cv2.inRange(gray, (190, 190, 190), (255, 255, 255))
这在文档 http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#inrange,虽然不是很清楚。