如何使用opencv python调整亮度、对比度和振动?
我是图像处理新手。我用Python3编程并使用OpenCV图像处理库如何使用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
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)
这应该有助于@谢谢你!我刚试过,效果不错!杰出的祝你好运。看看和