灰度值线性变换

原理

假设输入图像为I,宽为W、高为H,输出图像记为O,图像的线性变换可以利用以下公式定义:
\[O(r,c) = a*I(r,c) + b, 0 \leq r< H, 0 \leq c < W\]
当a=1,b=0时,O为I的一个副本;如果a>1,则输出图像O的对比度比I有所增大;如果a<1,则O的对比度比I有所 减小。 而b值的改变,影响的是输出图像的亮度,当b>0时,亮度增加; 当b<0时,亮度减小。

代码
# !/usr/bin/env python
# -*-encoding: utf-8-*-
# author:LiYanwei
# version:0.1


import cv2
import numpy as np

if __name__ =="__main__":
    image = cv2.imread('img1.jpg', cv2.IMREAD_GRAYSCALE)
    MAX_VALUE = 120
    value = 120

    #调整对比度后,图像的效果显示窗口
    cv2.namedWindow("contrast",cv2.WND_PROP_AUTOSIZE)

    #调整系数,观察图像的变化
    def callback_contrast(_value):
        #通过线性运算,调整图像对比度
        a = float(_value)/40.0
        contrastImage = a*image
        contrastImage[contrastImage > 255] = 255
        contrastImage = np.round(contrastImage)
        contrastImage = contrastImage.astype(np.uint8)
        cv2.imshow("contrast", contrastImage)
        cv2.imwrite("contrast.jpg", contrastImage)

    callback_contrast(value)
    cv2.createTrackbar("value", "contrast", value, MAX_VALUE, callback_contrast)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

转载于:https://www.cnblogs.com/Py00/p/8927147.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值