Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
如何使用opencv python调整亮度、对比度和振动?_Python_Opencv_Brightness_Contrast - Fatal编程技术网

如何使用opencv python调整亮度、对比度和振动?

如何使用opencv python调整亮度、对比度和振动?,python,opencv,brightness,contrast,Python,Opencv,Brightness,Contrast,我是图像处理新手。我用Python3编程并使用OpenCV图像处理库 亮度 对比度 振动 色调 饱和 轻盈 四,五,六。我正在使用以下代码转换为HSV空间 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) h, s, v = cv2.split(hsv) h += value # 4 s += value # 5 v += value # 6 final_hsv = cv2.merge((h, s, v)) img = cv2.cvtColor(final_h

我是图像处理新手。我用Python3编程并使用OpenCV图像处理库

  • 亮度
  • 对比度
  • 振动
  • 色调
  • 饱和
  • 轻盈
  • 四,五,六。我正在使用以下代码转换为HSV空间

    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    h, s, v = cv2.split(hsv)
    h += value # 4
    s += value # 5
    v += value # 6
    final_hsv = cv2.merge((h, s, v))
    img = cv2.cvtColor(final_hsv, cv2.COLOR_HSV2BGR)
    

    我找到的关于1和2的唯一教程是。本教程使用C++,但我用Python编程。另外,我不知道如何调整3。活力。我非常感谢你的帮助,谢谢

    感谢@MarkSetchell提供链接。 简言之,答案仅使用numpy,公式如下所示

    新图像=(旧图像)×(对比度/127+1)-对比度+亮度

    这里的对比度和亮度是[-127127]范围内的整数。标量127用于此范围。 另外,下面是我使用的代码

    brightness = 50
    contrast = 30
    img = np.int16(img)
    img = img * (contrast/127+1) - contrast + brightness
    img = np.clip(img, 0, 255)
    img = np.uint8(img)
    

    一种简单的亮度调整方法,适用于彩色单色图像

    img = cv2.imread('your path',0)
    brt = 40  
    
    img[img < 255-brt] += brt  
    
    cv2.imshow('img'+ img)
    
    img=cv2.imread('您的路径',0)
    brt=40
    img[img<255 brt]+=brt
    cv2.imshow(‘img’+img)
    
    其中,
    brt
    可以是增加亮度的正数,也可以是黑暗的负数

    brt=40时,此代码中处理的图像的前后链接如下:


    我不确定这是否有帮助,但为了改变亮度、对比度,我个人将图像切换到PIL.image并使用PIL.ImageEnhance,这在使用比率或百分比时非常方便

    image = PIL.Image.open("path_to_image")
    
    #increasing the brightness 20%
    new_image = PIL.ImageEnhance.Brightness(image).enhance(1.2)
    
    #increasing the contrast 20%
    new_image = PIL.ImageEnhance.Contrast(image).enhance(1.2)
    
    我仍然没有找到一个干净的方式来激发活力。关于ImageEnableHance的更多信息,我建议阅读官方文件-

    对于转换,我使用此

    注意-OpenCV使用BGR,PIL使用RGB通道。因此,如果不正确转换,可能会变得混乱

    #convert pil.image to opencv (numpy.ndarray)
    #need numpy library for this
    cv_image = numpy.array(pil_image)
    
    #convert opencv to pil.image
    
    image = cv2.cvtColor(cv_image, cv2.COLOR_BGR2RGB)
    pil_image = Image.fromarray(image)
    

    这应该有助于@谢谢你!我刚试过,效果不错!杰出的祝你好运。看看和