Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何定义仅检测图像中绿色对象的阈值:Opencv_Python_Opencv_Image Processing_Threshold - Fatal编程技术网

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

Python 如何定义仅检测图像中绿色对象的阈值:Opencv,python,opencv,image-processing,threshold,Python,Opencv,Image Processing,Threshold,我只想从自然环境中拍摄的图像中检测绿色物体。如何定义它?因为在这里我想通过阈值,比如说“x”,通过使用这个x,我只想得到一种颜色(白色)中的绿色物体,其他物体必须以另一种颜色(黑色)出现 请引导我做这件事。提前感谢。更新: 我制作了一张HSVcolormap。使用此贴图查找颜色范围比以前更容易、更准确 也许我应该改变hsv中的(40,40,40)~(70255255)来找到绿色的 原始答案: 转换到HSV颜色空间 使用cv2.inRange(hsv,hsv\u较低,hsv\u较高)获得绿色遮

我只想从自然环境中拍摄的图像中检测绿色物体。如何定义它?因为在这里我想通过阈值,比如说“x”,通过使用这个x,我只想得到一种颜色(白色)中的绿色物体,其他物体必须以另一种颜色(黑色)出现
请引导我做这件事。提前感谢。

更新:

我制作了一张
HSV
colormap。使用此贴图查找颜色范围比以前更容易、更准确

也许我应该改变hsv中的
(40,40,40)~(70255255)来找到绿色的


原始答案

  • 转换到
    HSV
    颜色空间
  • 使用
    cv2.inRange(hsv,hsv\u较低,hsv\u较高)
    获得绿色遮罩 我们使用
    范围(在hsv中)
    (36,0,0)~(86255255)
    用于该
    向日葵


    源图像:

    遮罩的绿色区域:

    更多步骤:


    核心源代码:

    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)
    

    类似的:


  • 美好的你想分享你的代码吗?因为我使用的是python opencv,所以我对bgr使用了hsv值,对下绿色区域使用了50100100,对上绿色区域使用了70255255,绿色的hsv值为60255255。但它不起作用,通过使用它,我只能得到纯黑色的图像。在我的情况下,我使用
    [36 0 0]
    ~
    [86 255 255]
    @消音器谢谢,它对我有用为什么不呢?如果你查找地图,你会发现
    蓝色(HSV)
    主要位于
    (110150,50)~(120255255)
    。另一个问题是Android特有的,不是吗?这个问题被标记为python。