温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++ OpenCV如何实现图像亮度和对比度操作

发布时间:2021-11-26 10:40:53 来源:亿速云 阅读:321 作者:小新 栏目:大数据

这篇文章主要介绍了C++ OpenCV如何实现图像亮度和对比度操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

代码演示

新建项目

新建一个项目opencv-0007,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法.并加载我们常用的那个图片显示出来

C++ OpenCV如何实现图像亮度和对比度操作

运行一下效果

C++ OpenCV如何实现图像亮度和对比度操作

通过像素操作

我们先获取宽高,然后对每个像素进行循环操作,我们设定了alpha(对比度)和beta(亮度)的值为1.2和30,这个值可以根据不同进行变化

C++ OpenCV如何实现图像亮度和对比度操作

C++ OpenCV如何实现图像亮度和对比度操作

C++ OpenCV如何实现图像亮度和对比度操作

显示效果为

C++ OpenCV如何实现图像亮度和对比度操作

可以看到右边的亮度太高了,显得非常的白了,我们修改一下alpha(对比度)的值为1.1,然后把beta(亮度)的值改为10,再运行一下看看效果

C++ OpenCV如何实现图像亮度和对比度操作

明显可以看到右边的图效果比刚才好多了

其中里面用到了saturate_cast<uchar>的函数,这个函数是用来防止数据溢出的,因为图像的颜色值都在0-255之间,用这个函数大致的原理即

if(data<0)  

    data=0;  

else if(data>255)  

    data=255;     

感谢你能够认真阅读完这篇文章,希望小编分享的“C++ OpenCV如何实现图像亮度和对比度操作”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI