zoukankan      html  css  js  c++  java
  • 粗略的调整图片对比度和亮度(五)

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

      一张全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()

    效果

  • 相关阅读:
    Integer的疑惑
    简单选择排序算法
    冒泡排序
    插入排序算法java
    BinaryOperator<T>接口的用法示例+BiFunction
    装箱和拆箱、类型比较
    java的Junit的用法(转发)
    htmlnav
    好用的壁纸网站大全
    c# 财务数据编号的生辰
  • 原文地址:https://www.cnblogs.com/angle6-liu/p/10652270.html
Copyright © 2011-2022 走看看