One way
我制作了 HSV 颜色图。它是更简单、更准确使用此贴图比以前找到颜色范围。
也许我应该改变用途HSV 中的 (40, 40,40) ~ (70, 255,255)找到green.
其他方式
- 转换为 HSV 颜色空间,
- Use
cv2.inRange(hsv, hsv_lower, hsv_higher)
获得绿色面具。
We use 范围(HSV): (36,0,0) ~ (86,255,255)为了这向日葵.
源图像:
被遮蔽的绿色区域:
更多步骤:
核心源码:
import cv2
import numpy as np
## Read
img = cv2.imread("sunflower.jpg")
## Convert to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
## Mask of green (36,25,25) ~ (86, 255,255)
# mask = cv2.inRange(hsv, (36, 25, 25), (86, 255,255))
mask = cv2.inRange(hsv, (36, 25, 25), (70, 255,255))
## Slice the green
imask = mask>0
green = np.zeros_like(img, np.uint8)
green[imask] = img[imask]
## Save
cv2.imwrite("green.png", green)
Similar:
- 使用“cv::inRange”(OpenCV) 选择正确的 HSV 上下边界进行颜色检测 https://stackoverflow.com/questions/10948589/choosing-the-correct-upper-and-lower-hsv-boundaries-for-color-detection-withcv/48367205#48367205