OpenCV学习笔记(三):图像对比度、亮度调整源码

OpenCV学习笔记(三):图像对比度、亮度调整源码

主函数:

 #include <opencv2/opencv.hpp>using namespace cv;using namespace std;int g_nContrastValue=80; //对比度值int g_nBrightValue=80;  //亮度值Mat g_srcImage, g_dstImage;int main(int argc, char *argv[]){QCoreApplication a(argc, argv);// 1、读入用户提供的图像g_srcImage = imread("F:/C++/2. OPENCV 3.1.0/TEST/1.jpg");if (!g_srcImage.data){printf("读取g_srcImage图片错误~! \n"); return false;}// 2、显示源图imshow("【原始图窗口】", g_srcImage);// 3、快速地形成一个填满0的目标常量矩阵,// 4、创建窗口// 5、创建轨迹条// 6、调用回调函数g_dstImage = Mat::zeros(g_srcImage.size(), g_srcImage.type());namedWindow("【效果图窗口】", 1);createTrackbar("对比度:", "【效果图窗口】", &g_nContrastValue, 300, ContrastAndBright);createTrackbar("亮   度:", "【效果图窗口】", &g_nBrightValue, 200, ContrastAndBright);ContrastAndBright(g_nContrastValue, 0);ContrastAndBright(g_nBrightValue, 0);//输出一些帮助信息//按下“q”键时,程序退出cout << endl << "\t运行成功,请调整滚动条观察图像效果\n\n"<< "\t按下“q”键时,程序退出\n";while (char(waitKey(1)) != 'q') {}return a.exec();}

回调函数

 static void ContrastAndBright(int, void *){// 遍历每个像素的每个通道// 三个for循环,执行运算 g_dstImage(i,j) = a*g_srcImage(i,j) + b// saturate_cast: 模板函数,用途溢出保护// 从一种原始类型到另一种原始类型的高效而准确的转换// 饱和在名称中意味着当输入值v超出目标类型的范围时,结果不是只通过获取较低的输入位来形成的,而是通过剪切值来形成的。for (int y = 0; y < g_srcImage.rows; y++){for (int x = 0; x < g_srcImage.cols; x++){for (int c = 0; c < 3; c++){g_dstImage.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_nContrastValue*0.01)*(g_srcImage.at<Vec3b>(y, x)[c]) + g_nBrightValue);}}}// 显示图像imshow("【效果图窗口】", g_dstImage);}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB xlswrite函数出现“错误: 服务器出现意外情况”

打开Excel&#xff0c;点击文件→选项→加载项&#xff0c;选择COM加载项 点击转到&#xff0c;将福昕阅读器前面的√去掉即可

神秘的中国超算:比肩高铁的世界级领先

来源&#xff1a;21Tech2019年4月&#xff0c;一张类似燃烧中蜂窝煤的照片传遍全世界——这是人类历史上首次得见“黑洞”的真容。实际上&#xff0c;关于黑洞的照片早在2017年4月历经十余天已拍摄完毕&#xff0c;此后&#xff0c;便是将来自全球8架射电望远镜收集到的数据进行…

OpenCV示例学习(七):离散傅里变换(DFT)算子:getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize()

OpenCV示例学习&#xff08;七&#xff09;&#xff1a;离散傅里变换&#xff08;DFT&#xff09;算子&#xff1a;getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize() #include <opencv2/opencv.hpp>using namespace cv;int main(int argc, char *ar…

OpenCV学习笔记(四):XML,YAML(.txt,.doc)文件读写操作

OpenCV学习笔记&#xff08;四&#xff09;&#xff1a;XML,YAML(.txt,.doc)文件读写操作 一、Write_XML_and_YAML_File&#xff08;写入XML&#xff09; #include <opencv2/opencv.hpp> #include <time.h>using namespace cv;int main() {// 1、准备文件写操作F…

“用手机就能访问卫星” 软件定义升级卫星智能

▲“天智一号”是全球首颗实际开展工程研制并发射的软件定义卫星。软件所供图来源&#xff1a; 中国科学报▲专家学者探讨开源、开放的航天生态环境。沈春蕾摄“假设未来30年将发射10万颗&#xff0c;这些卫星该怎么造、怎么算、怎么用&#xff1f;”在日前召开的2019软件定义卫…

python的print函数输出带颜色字体

格式&#xff1a;print(\033[显示方式&#xff1b;前景色&#xff1b;背景色m 需要显示的文字 \033[0m) 其中"\033[显示方式&#xff1b;前景色&#xff1b;背景色m"是开头部分&#xff0c;"\033[0m"是结尾部分 说明&#xff1a; 开头部分有三个参数&…

OpenCV学习笔记(五):线性滤波-方框、均值、高斯:boxFilter(),blur(),GaussianBlur()

OpenCV学习笔记&#xff08;五&#xff09;&#xff1a;线性滤波-方框、均值、高斯&#xff1a;boxFilter(),blur(),GaussianBlur() 线性滤波&#xff1a;即多个信号之和的响应和它们各自响应之和相等。 参考&#xff1a; https://blog.csdn.net/poem_qianmo/article/details/…

NB-IoT与LoRa,两马领跑物联网竞赛,谁将最终胜出?

来源&#xff1a;电子工程专辑HS Markit报告指出&#xff0c;曾经广泛开放的LPWAN市场领域开始明显紧缩&#xff0c;不过仍处于初期发展阶段。2018年只有1.5亿个LPWAN链路被布署&#xff0c;到2023年NB-IoT与LoRa可望占据所有LPWAN链路的86%......根据市场研究机构IHS Markit发…

【全文】Libra回应质疑:Facebook将放弃控制权,不与主权货币竞争

Facebook的全球数字货币计划Libra遭到多方抨击质疑之后&#xff0c;将于明日直面国会听证会。目前Facebook能否发行数字货币&#xff0c;悬于监管机构的许可决定&#xff0c;而这也会成为数字货币命运的一个重要转折点。Libra项目的负责人David Marcus提前发布了他的证词。硅星…

Git从零教你入门(4):Git服务之 gogs部署安装

Git从零入门系列4:先看上一篇文章&#xff1a;http://www.51testing.com/index.php?uid-497177-action-viewspace-itemid-3706817今日主题&#xff1a;gogs安装部署环境&#xff1a;centos安装包地址&#xff1a;https://dl.gogs.io/gogs_v0.8.25_linux_amd64.zip部署步骤&…

OpenCV学习笔记(六):非线性滤波-中值、双边:medianBlur(),bilateralFilter()

OpenCV学习笔记&#xff08;六&#xff09;&#xff1a;非线性滤波-中值、双边&#xff1a;medianBlur(),bilateralFilter() 1、中值滤波&#xff08;Median filter&#xff09; 是一种典型的非线性滤波技术&#xff0c;基本思想是用像素点邻域灰度值的中值来代替该像素点的灰…

Batch Normalization原理及pytorch的nn.BatchNorm2d函数

下面通过举个例子来说明Batch Normalization的原理&#xff0c;我们假设在网络中间经过某些卷积操作之后的输出的feature map的尺寸为4322&#xff0c;4为batch的大小&#xff0c;3为channel的数目&#xff0c;22为feature map的长宽 整个BN层的运算过程如下图&#xff1a; 上…

OpenCV学习笔记(八):形态学morpholgy(2):开/闭运算,形态学梯度、顶帽/黑帽morphologyEx()

OpenCV学习笔记&#xff08;八&#xff09;&#xff1a;形态学morpholgy(2)&#xff1a;开、闭运算&#xff0c;形态学梯度、顶帽、黑帽&#xff1a;morphologyEx() 数学形态学&#xff08;Mathematical morphology&#xff09; 是一门建立在格论和拓扑学基础之上的图像分析学…

PPT将图片变为平行四边形形状

点击图片→ 格式→ 旋转→ 其它旋转选项→ 三维旋转

“人工智能之父”艾伦·图灵登上英国50英镑新钞

图源&#xff1a;BBC来源&#xff1a;海外网海外网7月15日电英国广播公司&#xff08;BBC&#xff09;报道&#xff0c;“计算机科学和人工智能之父”艾伦图灵登上英国50英镑新钞。此前有媒体报道称&#xff0c;英格兰银行计划于2020年推出新版50英镑&#xff0c;用更耐磨的聚合…

PPT将立方体形状变为很薄的长方体

方法是选中立方体&#xff0c;调节箭头所示的黄色节点&#xff0c;即可调节立方体的厚度&#xff1a;

OpenCV学习笔记(七):形态学morpholgy(1):腐蚀/膨胀:enrode(),dilate()

OpenCV学习笔记&#xff08;七&#xff09;&#xff1a;形态学(morpholgy)&#xff1a;腐蚀/膨胀&#xff1a;enrode(),dilate() 数学形态学&#xff08;Mathematical morphology&#xff09; 是一门建立在格论和拓扑学基础之上的图像分析学科&#xff0c;是数学形态学图像处理…

【中台】“中台”概念究竟是什么?制造业企业需要拥抱吗?

来源&#xff1a;中国电子报“忽如一夜春风来&#xff0c;千树万树梨花开。” 这首诗形容当前“中台”概念的风靡非常恰当。IT圈里不乏新的概念、新的“网红”&#xff0c;如今&#xff0c;“中台”一词占据了C位&#xff0c;成为软硬件企业尤其是互联网企业在各大演讲中经常挂…

PPT立方体三面同色

我们知道PPT插入的立方体有一面的颜色比其它两面深一点&#xff0c;例如我插入一个立方体&#xff0c;并将其填充为白色&#xff1a; 可以看到有一面并不是白色&#xff0c;而是灰色。但如果我需要的是三面都为白色的立方体呢&#xff1f; 这时可以插入一个平行四边形&#xf…

OpenCV学习笔记(九): 漫水填充:floodFill()

OpenCV学习笔记&#xff08;九&#xff09;&#xff1a; 漫水填充&#xff1a;floodFill() 定义&#xff1a; 漫水填充法是一种用特定的颜色填充联通区域&#xff08;自动选中了和种子点相连的区域&#xff0c;接着将该区域替换成指定的颜色&#xff09;通过设置可连通像素的上…