python – 如何定义阈值以仅检测图像中的绿色对象:Opencv

参见英文答案 > OpenCV Android Green Color Detection                                    1个
我只是想从自然环境中捕获的图像中仅检测绿色物体.如何定义它?因为在这里我想通过阈值让我们说’x’,通过使用这个x我想只获得一种颜色的绿色对象(白色)其他必须出现在另一种颜色(黑色)
请指导我这样做.提前致谢.

解决方法:

更新:

我制作了一张HSV色彩图.使用此地图比以前更容易和准确地找到颜色范围.

也许我应该在hsv中改变使用(40,40,40)〜(70,255,255)来找到绿色.

python  – 如何定义阈值以仅检测图像中的绿色对象:Opencv

原始答案:

>转换为HSV色彩空间,
>使用cv2.inRange(hsv,hsv_lower,hsv_higher)获取绿色掩码.

我们使用该向日葵的范围(以hsv为单位):( 36,0,0)〜(86,255,255).

源图片:

python  – 如何定义阈值以仅检测图像中的绿色对象:Opencv

蒙面绿色区域:

python  – 如何定义阈值以仅检测图像中的绿色对象:Opencv

更多步骤:

python  – 如何定义阈值以仅检测图像中的绿色对象:Opencv

核心源代码:

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)

类似:

> Choosing the correct upper and lower HSV boundaries for color detection with`cv::inRange` (OpenCV)

上一篇:Python|力扣周赛2


下一篇:mac使用python识别图形验证码