szy*_*l00 -1 python opencv image-processing
我正在使用 OpenCV 处理这种图像:

我有一个包含不同颜色的 numpy 数组,假设我认为这种颜色是用 BGR 编写的:[65 71 72]我想从图像中删除这种颜色,在这种颜色后面留下黑色空格。据我所知,我必须将图像转换为灰度,然后应用蒙版,但在蒙版中我说颜色的下边界和上边界是什么,而我不知道该颜色或任何颜色的边界是什么,以及什么是该颜色的灰度表示。我读到了许多不同的阈值技术,但所有示例都涉及颜色,例如(255 0 0).
您可以直接在BGR颜色空间上应用 OpenCV 来减去所需的inRange颜色:
import numpy as np
import cv2
img = np.array([
[[1, 2, 3], [2, 3, 1], [3, 1, 2]],
[[4, 5, 6], [65 71 72], [6, 4, 5]],
[[7, 8, 9], [8, 9, 7], [9, 7, 8]]], dtype=np.uint8)
lower = np.array([65 71 72])
upper = np.array([65 71 72])
mask = cv2.inRange(img, lower, upper)
masked = cv2.bitwise_and(img,img, mask=mask)
result = img - masked
Run Code Online (Sandbox Code Playgroud)