【OpenCV】图片对比度和亮度

本文介绍了在OpenCV中如何处理图像的对比度和亮度,包括防止数值溢出的技巧、创建全零矩阵图像的方法以及线性变换和指数变换的实现。通过示例代码展示了如何使用convertTo()函数进行图像亮度和对比度的调整。
摘要由CSDN通过智能技术生成

【知识点梳理


1、防止溢出
  在opencv中,对计算式进行计算的时候经常会出现值溢出(上溢出或下溢出),尤其是对无符号数值进行加减操作时。opencv中使用Saturation Casting“转换很好的解决这个问题,使用saturate_cast<>(),opencv对数组或矩阵进行代数运算或其他操作时,会自动检测underflows and overflows,当结果上溢出时就会用最大的可用值代替,当下溢出时就会用最小的可用值代替。

2、创建全零矩阵图像
  Mat new_image = Mat::zeros( image.size(), image.type() );
  说明:新图像大小与类型与原图像相同,像素值为零。

3、图像线性变换
  image.convertTo(new_image, -1, alpha, beta);
  说明:相当于new_image =saturate_cast(alpha(∗this)(x,y)+beta).第二个参数是输出图像的类型或深度,如果为负则与输入图像的类型或深度相同。

4、图像指数变换




5、创建滑动控件

CV_EXPORTS int createTrackbar(const string& trackbarname, const string& winname,  
                              int* value, int count,  
                              TrackbarCallback onChange = 0,  
                              void* userdata = 0);  

   参数一:trackbarname:滑动控件的名称;
   参数二:winname:滑动控件用于依附的图像窗口的名称;
   参数三:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值