opencv6-调整图像亮度和对比度

 一、理论

 亮度:0~255之间取大一些的值

对比度:即让R G B 分量的差值增大

二、代码演示

#include<opencv2\opencv.hpp>
#include<iostream>
#include<math.h>
using namespace cv;
using namespace std;
int main()
{Mat src = imread("E:\\vs2015\\opencvstudy\\3.jpg", 1);if (!src.data){cout << "could not load image1!" << endl;return -1;}char input_win[] = "input image";imshow(input_win, src);cvtColor(src, src, CV_BGR2GRAY);//Vec3b 到 Vec3f 的转换函数 src.convertTo()Mat m1;src.convertTo(m1, CV_32F);int height = src.rows;int width = src.cols;Mat dst = Mat::zeros(src.size(), src.type());double alpha = 0.6; //控制对比度float beta = 10;  //控制亮度for (int row = 0; row < height; row++){for (int col = 0; col < width; col++){if (src.channels() == 3){/*int b = src.at<Vec3b>(row,col)[0];  这里直接使用Vec3f会报错。不可以强转int g = src.at<Vec3b>(row,col)[1];int r = src.at<Vec3b>(row,col)[2];*/float b = m1.at<Vec3f>(row, col)[0];float g = m1.at<Vec3f>(row, col)[1];float r = m1.at<Vec3f>(row, col)[2];dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(alpha *b + beta);dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(alpha*g + beta);dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(alpha*r + beta);}else if (src.channels() == 1){float pixel = src.at<uchar>(row, col);dst.at<uchar>(row, col) = saturate_cast<uchar>(alpha*pixel + beta);}else {cout << "ERROR" << endl;}}}char output_title[] = "contrast and brightness change demo";imshow(output_title, dst);waitKey(0);return 0;
}

 

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

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

相关文章

Jmeter之测试片段和模块控制器应用

一、测试片段是什么&#xff1f;应用在控制器上的一个特殊线程组&#xff0c;与线程组处于同一层级&#xff0c;必须与Include Controller或模块控制器一起使用才被执行。被引用的逻辑控制器、测试片段可以为禁用状态&#xff0c;被引用后仍然会被执行二、应用场景1、当jmeter脚…

opencv7-绘制形状和文字

一、理论 二、代码演示 #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; Mat bgImage; const char* drawdemo_win "draw shapes and text demo"; void MyLines(); void MyRectang…

上海居住证积分办理攻略,太容易了,快来收藏!!!

历时1个月零2天&#xff0c;上海居住证积分终于办下来了&#xff0c;太激动了&#xff0c;我整理了积分办理攻略&#xff0c;准备办积分的朋友&#xff0c;大家快来围观参考交流&#xff01;&#xff01;&#xff01;一、办理居住证二、模拟打分根据自己真实情况填写并打分&…

opencv8-图像模糊

为掩膜 表示图像在&#xff08;i,j&#xff09;位置的像素 代表图像经过掩膜操作 双边模糊&#xff1a;&#xff08;基于高斯模糊&#xff09; #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace std; using namespace c…

上海人社APP历年社保查询攻略

随时随地查社保&#xff0c;太方便了&#xff0c;快来收藏起来&#xff01;&#xff01;&#xff01;1、苹果商店或安卓商店下载【上海人社app】2、账号登录&#xff0c;账号&#xff1a;身份证号码 密码&#xff1a;去社保中心开通3、首页&#xff0c;点击CA证书管理4、点击【…

opencv9-膨胀和腐蚀

膨胀是求最大值。即白色增多 腐蚀是求最小值&#xff0c;即黑色增多 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; //模糊原理 Mat src; Mat…

上海个人所得税缴费明细查询攻略

途径一&#xff1a;带本人身份证至上海市各区税务局拉取本人纳税清单明细&#xff1b;途径二&#xff1a;查2018年及之前&#xff1a;1、登录上海市电子税务局&#xff1a;http://shanghai.chinatax.gov.cn/2、>我要办税&#xff0c;自然人登录3、>证明开具4、>个人所…

opencv10-形态学操作

主要针对二值图像和灰度图 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() {Mat src imread("E:\\vs2015\\opencvstudy\\1.jp…

8年测试经验,用例设计竟然不知道状态图法?

作为测试人&#xff0c;我们平时比较常用的软件测试测试方法有边界值、等价类划分、错误推测法、因果图、场景法等&#xff0c;如果提到状态图法&#xff0c;可能很多人都很陌生&#xff0c;今天我们就来一起认识下状态图法。状态图通常在被测试软件状态比较多的情况下使用&…

opencv12-图像金字塔

上采样&#xff1a;图像分辨率增加 下采样&#xff1a;图像分辨率降低 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() {Mat src …

Fiddler Everywhere全平台抓包调试工具安装和使用(一)

Fiddler Everywhere是可以运行在任何浏览器&#xff0c;任何系统、跨平台&#xff08;Windows、Mac、Linux&#xff09;的一款Web调试代理工具。它记录了计算机和Internet之间的所有HTTP&#xff08;S&#xff09;通信&#xff0c;可以检查和编辑通信&#xff0c;并Mock请求以及…

移动端iphone抓包调试神器—Stream安装和使用(一)

之前已经给大家分享了很多抓包工具的文章了&#xff0c;如果觉得有用&#xff0c;记得分享&#xff01;&#xff01;&#xff01;Fiddler抓取APP请求&#xff08;环境搭建&#xff09;之mama再也不用担心抓不到包了Fiddler抓包神器带你遨游网络&#xff0c;叱咤风云&#xff0c…

opencv14-自定义线性滤波

卷积作用&#xff1a;提取边缘&#xff0c;图像增强图像锐化&#xff0c;模糊图像 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() …

Fiddler响应拦截数据篡改,实现特殊场景深度测试(一)

一、日常测试的场景1、页面文案太长&#xff0c;页面显示测试2、钉钉已打卡&#xff0c;再次打卡测试3、人在上海&#xff0c;App定位到北京测试4、招聘岗位状态十几种&#xff0c;在招岗位页面才展示测试5、各种图片、视频格式&#xff0c;页面显示测试6、不同App版本号&#…

利用Fiddler抓包调试工具,实现mock数据特殊场景深度测试(二)

大家好&#xff0c;我是王大力&#xff0c;上一篇文章Fiddler响应拦截数据篡改&#xff0c;实现特殊场景深度测试&#xff08;一&#xff09;我们和大家聊了如何利用fiddler抓包工具&#xff0c;设置响应断点&#xff0c;拦截响应&#xff0c;来篡改响应数据&#xff0c;欺骗前…

opencv16-Sobel算子

处理过程&#xff1a; #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() {Mat src imread("E:\\vs2015\\opencvstudy\\1.jpg&qu…

利用Fiddler抓包调试工具,实现神奇特殊场景深度测试(三)

前面两篇文章我们分别聊了如何设置请求断点和设置响应断点&#xff0c;以及篡改请求数据和响应数据来欺骗前后端&#xff0c;达到可模拟特殊场景测试效果&#xff0c;利用Fiddler的AutoResponder进行mock测试&#xff0c;无需构建大量的测试数据&#xff0c;大大提升了测试效率…

Pytest参数选项自由执行测试用例详解(二)

运行pytest可以指定目录和文件&#xff0c;如果不指定&#xff0c;pytest会搜索当前目录及其子目录中以test_开头或以_test结尾得测试函数。我们把pytest搜索测试文件和测试用例的过程称为测试搜索&#xff08;test discovery&#xff09;。只要遵循pytest的命名规则&#xff0…

ISTQB高级国际认证试题及答案(一)

题目 #1 &#xff08;3 分&#xff09;选择2个答案您是旅游信息手机应用项目的测试经理。近期该项目切换到敏捷流程和测试驱动开发&#xff08;TDD&#xff09;。每个开发周期持续15天&#xff0c;在第7天之后开始每日构建。第10天以后&#xff0c;不会再有新的功能加入。开发团…

ISTQB高级-测试经理国际认证试题及答案(二)

1、TM-1.2.1 (K4) 为了计划测试活动和工作产品以实现测试目标&#xff0c;必须对一个系统的测试需求进行分析。问题&#xff1a;您是旅游信息手机应用项目的测试经理。近期该项目切换到敏捷流程和测试驱动开发&#xff08;TDD&#xff09;。每个开发周期持续15天&#xff0c;在…