OpenCV-python基础操作之使用 cv2.addWeighted()函数调整图像的亮度/对比度
相关代码:
# 代码描述: 使用cv2.addWeighted()函数,粗略的调整图像的亮度/对比度
#
# 创建时间: 2020-09-15
# 创建人: Kenn Wu
# 修改时间:
#
import cv2 as cv
import numpy as np
def contrast_brightness_demo(image, c, b): # 定义方法, c @ contrast 对比度 ; b @ brightness 亮度
h, w, ch = image.shape
blank = np.zeros([h, w, ch], image.dtype) # 定义一张空白图像
dst = cv.addWeighted(image, c, blank, 1-c, b) # 设定权重
cv.imshow("con-bri-demo", dst)
src = cv.imread("../OpenCV_Files/pictures_for_OpenCV/8.jpg") # 读取图片
cv.imshow("input image", src) # 显示原图片
contrast_brightness_demo(src, 1.5, 2) # 调用方法,在原图的基础上改变亮度/对比度的值
cv.waitKey(0) # 保持对话框
cv.destroyWindow() # 清除内存
处理效果:
补充:
① contrast_brightness_demo(src, 1.5, 2) # (括号内数字大小可自己调控,为效果明显,这里数字偏大)
② cv2.addWeighted()函数
cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])
cv2.addWeighted()函数可以将两张相同shape的图片按权重进行融合,
dst = src1 * alpha + src2 * beta + gamma
参数说明:
src1 –—— 输入的第一张图片 alpha —— 第一张图片的权重 src2 —— 与第一张大小和通道数相同的图片(相同shape) beta —— 第二张图片的权重 dst —— 输出,python中可以直接将dst放在前面作为输出 gamma —— 加到每个总和上的标量,相当于调亮度 dtype —— 输出阵列的可选深度,默认值为-1.当两个输入数组具有相同深度时,参数为默认值-1.即为src1.depth()。