粗略的调整图片对比度和亮度(五)

一 基本原理(两张图片合成)

  一张全0像素图片(黑色),另一张原图,然后两张图按照不同的比例进行合成得到新图.

 

二 核心函数 addWeighted函数

  官方:计算两个图像阵列的加权和 ,可以理解是按照所占比例合成两张图片

addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)
1、第1个参数src1,输入图片1, 

2、第2个参数alpha,图片1的融合比例

3、第3个参数src2,输入图片2

4、第4个参数beta,图片2的融合比例

5、第5个参数gamma,偏差 微调参数

6、第6个参数dst,输出图片

 

有公式得出两个图片加成输出的图片为:dst=src1*alpha+src2*beta+gamma

 

代码:

import cv2 as cv
import numpy as np

def contract_brightness_image(src,a,g):
    # 获取shape的数值,height和width、通道
    h,w,ch=src.shape
    # 新建全零图片数组src2,将height和width,类型设置为原图片的通道类型(色素全为零,输出为全黑图片)
    src2=np.zeros([h,w,ch],src.dtype)
    # addWeighted函数 色彩调节函数
    dst=cv.addWeighted(src,a,src2,1-a,g)
    cv.imshow('con_bri',dst)

src=cv.imread('./dogcat.jpg')
cv.namedWindow('before',cv.WINDOW_NORMAL)
cv.imshow('before',src)
contract_brightness_image(src,1.2,10)
cv.waitKey(0)
cv.destroyAllWindows()

 

效果

 

posted @ 2019-07-15 10:36  柳帅  阅读(356)  评论(0编辑  收藏  举报
//替换成自己路径的js文件