opencv4-图像操作

这里Vex3f 也可以是Vec3b

#include<opencv2\opencv.hpp>
#include<iostream>
#include<math.h>
using namespace cv;
using namespace std;//读写图像,
//读写像素,
//修改像素值
int main()
{Mat src = imread("E:\\vs2015\\opencvstudy\\2.jpg", 1);if (!src.data){cout << "could not load image!" << endl;return -1;}//imshow("inputImage", src);//单通道取反Mat gray_src;cvtColor(src, gray_src, CV_BGR2GRAY);//imshow("gray_src", gray_src);int rows = gray_src.rows;int cols = gray_src.cols;Mat gray_src_invert = Mat::zeros(gray_src.size(), gray_src.type());/*for (int row = 0; row < rows; row++){for (int col = 0; col < cols; col++){int gray_pixel = gray_src.at<uchar>(row, col);gray_src_invert.at<uchar>(row, col) = 255 - gray_pixel;}}imshow("gray_src_invert", gray_src_invert);*///3通道取反Mat dst,dst2;dst.create(src.size(), src.type());dst2.create(src.size(), src.type());int height = src.rows;int width = src.cols;int nc = src.channels();for (int row = 0; row < height; row++){for (int col = 0; col < width; col++){if (nc == 1){int gray_pixel = gray_src.at<uchar>(row, col);gray_src_invert.at<uchar>(row, col) = 255 - gray_pixel;}else if (nc == 3){int b = src.at<Vec3b>(row, col)[0];int g = src.at<Vec3b>(row, col)[1];int r = src.at<Vec3b>(row, col)[2];dst.at<Vec3b>(row, col)[0] = 255 - b;dst.at<Vec3b>(row, col)[1] = 255 - g;dst.at<Vec3b>(row, col)[2] = 255 - r;dst2.at<Vec3b>(row, col) = (r, max(g, b));}}}//imshow("3通道取反像素操作", dst);Mat bitwise_not_dst;bitwise_not(src, bitwise_not_dst);  //位操作取反。等价于上面的像素操作//imshow("3通道取反bitwise_not", bitwise_not_dst);imshow("dst2", dst2);//空白图像赋值Mat M3;M3.create(gray_src.size(), gray_src.type());M3 = Scalar(0);imshow("空白图像", M3);//ROI选择Rect r(300, 300, 1000, 400);  //左上角的横坐标,纵坐标,矩形高度,宽度cout << "gray_image height:" << gray_src.rows << endl;cout << "gray_image width:" << gray_src.cols << endl;Mat smallImg = gray_src(r);imshow("ROI截取图像", smallImg);waitKey(0);return 0;
}

 

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

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

相关文章

2016年下半年《软件评测师》下午试卷及答案

一、阅读下列C程序&#xff0c;回答问题1至问题3&#xff0c;将解答填入答题纸的对应栏内。【C程序】问题&#xff1a;1.1 请针对上述C程序给出满足100%DC&#xff08;判定覆盖&#xff09;所需的逻辑条件本问题考查白盒测试用例设计方法中的判定覆盖法。判定覆盖指设计足够的…

opencv5-图像混合

代表一幅图像。代表权重&#xff0c;取值范围为0~1。代表另一幅图像 对图像的每一个像素进行此操作。得到混合后图像 我的实践&#xff1a; #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; …

2018年下半年《软件评测师》上午试卷及答案

1、以下关于信息和数据的描述中,错误的是( B)。 A. 通常从数据中可以提取信息 B. 信息和数据都由数字组成 C. 信息是抽象的、数据是具体的 D. 客观事物中都蕴涵着信息信息反映了客观事物的运动状态和方式&#xff0c;数据是信息的物理形式。信息是抽象的&#xff0c;数…

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

一、理论 亮度&#xff1a;0~255之间取大一些的值 对比度&#xff1a;即让R G B 分量的差值增大 二、代码演示 #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; int main() {Mat src imread…

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…