OpenCV改编图片亮度以及对比度

在图像处理中,为了增强训练数据,需要调整图片的亮度和对比度。虽然OpenCV没有直接的内置函数,但可以通过公式f(x) = a * g(x) + b实现,其中g(x)是原始像素,a和b分别对应对比度和亮度的调整参数。本文将介绍如何用Python和C++在OpenCV中实现这一操作。
摘要由CSDN通过智能技术生成

训练数据需要对样本做增强处理,所以需要知道如何改编图片亮度以及对比度,本来以为OpenCV有自带的函数改变亮度以及对比度,结果发现木有,桑心

Python、C++改变图片亮度以及对比度方法都在官方文档中Changing the contrast and brightness of an image!

图片亮度以及对比度

f ( x ) = a ∗ g ( x ) + b f(x) = a*g(x) + b f(x)=ag(x)+b

其中 g ( x ) g(x) g(x)为原图像素点,而 f ( x ) f(x) f(x)为改变后的图片像素点, a a a b b b分别为调节图片的对比度以及亮度

from __future__ import print_function
import cv2 as cv
import numpy as np

image = cv.imread("demo.jpg")

new_image = np.zeros(image.shape, image.dtype)
alpha = 1.0 # contrast range [1.0-3.0]
beta = 0    # brightness range [0-100] 
for y in range(image.shape[0]):
    for x in range(image.shape[1]):
        for c in range(image.shape[2]):
            # np.clip是将值限定在某个范围内(0,255)
            new_image[y,x,c] = np.clip(alpha*image[y,x,c] + beta, 0, 255)
cv.imshow('Original Image', image)
cv.imshow('New Image', new_image)
# Wait until user press some key
cv.waitKey(0)
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值