学习OpenCV(四) 改变图像的对比度和亮度——像素变换

本文介绍了如何使用OpenCV对图像进行像素变换,以改变图像的对比度和亮度。通过数学公式解释了对比度和亮度变化的原理,并提供了使用指针操作实现的代码示例。此外,还提及了OpenCV中的`Mat::convertTo`函数,它能方便地完成相同操作。
摘要由CSDN通过智能技术生成

在上篇文章中,我们介绍了如何用filter2D函数来对图像进行邻域变换。这篇文章我们来简单介绍一下如何对图像的像素进行变换。

对图像的单个像素进行变换,是图像处理中一个很常见的操作。比如改变图像的亮度,对图像像素进行线性变换,二值化等。下面将以改变图像的对比度和亮度来举例。

改变图像的对比度和亮度,归根到底,就是下面的这个数学公式:

这个式子很好理解。就是将原来图像中的像素值进行比例变换,后又进行了移动。alpha一般叫做增益参数,表征对比度,而beta成为偏置参数,表征亮度变化。

对图像的每个像素进行操作,其实我们在前面的文章中已经介绍过了,比如LUT查表操作,直接用指针访问,或是用迭代器等。下面的这段代码实现了对图像对比度和亮度的这一操作,我们用指针实现:

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv/cv.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

Mat ChangePixel(const Mat& img,const double alpha,const int beta)
{
	Mat newImg=Mat::zeros(img.size(),img.type ());    // the img to be returned
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值