这篇文章主要介绍了C++ OpenCV如何实现图像亮度和对比度操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
代码演示
新建项目
新建一个项目opencv-0007,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法.并加载我们常用的那个图片显示出来
运行一下效果
通过像素操作
我们先获取宽高,然后对每个像素进行循环操作,我们设定了alpha(对比度)和beta(亮度)的值为1.2和30,这个值可以根据不同进行变化
显示效果为
可以看到右边的亮度太高了,显得非常的白了,我们修改一下alpha(对比度)的值为1.1,然后把beta(亮度)的值改为10,再运行一下看看效果
明显可以看到右边的图效果比刚才好多了
其中里面用到了saturate_cast<uchar>的函数,这个函数是用来防止数据溢出的,因为图像的颜色值都在0-255之间,用这个函数大致的原理即
if(data<0)
data=0;
else if(data>255)
data=255;
感谢你能够认真阅读完这篇文章,希望小编分享的“C++ OpenCV如何实现图像亮度和对比度操作”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。