上一讲:【opencv4】opencv视频教程 C++(opencv教程)3、矩阵的掩膜操作(filter2D)

下一讲:【opencv4】opencv视频教程 C++ 5、读写图像imread、imwrite、读写像素at<>()、修改像素值、ROI区域选择(图像裁剪)Rect、Vec3b与Vec3F、CV_32F)

[opencv_C++] 入门强推!!!【B站最全】

文章目录

  • Mat对象
  • Mat对象与IplImage对象
  • Mat对象构造函数与常用方法
  • Mat对象使用(浅复制与深复制)
  • Mat对象使用-四个要点
  • Mat对象创建
  • 定义小数组
  • 演示代码

Mat对象

Mat对象与IplImage对象

Mat对象构造函数与常用方法

Mat对象使用(浅复制与深复制)

Mat对象使用-四个要点

Mat对象创建


定义小数组

演示代码

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, const char* argv[]) {Mat src, dst1, dst2;src = imread("./test.jpg");//if (src.empty()) {if (!src.data){printf("could not load image...\n");return -1;}namedWindow("input img");   //默认自动窗口大小imshow("input img", src);dst1 = Mat(src.size(), src.type());dst1 = Scalar(127, 0, 255);namedWindow("output img1");  //默认自动窗口大小imshow("output img1", dst1);//通过指针访问像素数值const uchar* firstRow = dst1.ptr<uchar>(0, 0) + 1;printf("first pixel %p value:%d\n", firstRow, *firstRow);   //first pixel 000001FDC64700C1 value:0const uchar* secondRow = dst1.ptr<uchar>(0, 0) + 2;printf("second pixel %p value:%d\n", secondRow, *secondRow); //second pixel 000001FDC64700C2 value:255const uchar* thirdRow = dst1.ptr<uchar>(0, 0) + 3;printf("third pixel %p value:%d\n", thirdRow, *thirdRow);  //third pixel 000001FDC64700C3 value:127const uchar* forthRow = dst1.ptr<uchar>(0, 0) + 4;printf("forth pixel %p value:%d\n", forthRow, *forthRow);   //forth pixel 000001FDC64700C4 value:0//转换图像颜色空间cvtColor(src,dst2, COLOR_BGR2GRAY);namedWindow("output img2");imshow("output img2", dst2);//使用Mat构造方法创建图片//Mat M(100, 100, CV_8UC3, Scalar(0, 0, 255)); //Scalar表示创建一个向量(里面有几个数字就表示像素有几个通道)Mat M(100, 100, CV_8UC1, Scalar(127));namedWindow("output img3");    //默认自动窗口大小imshow("output img3", M);//用create方法创建图片Mat m1;m1.create(src.size(), src.type());m1 = Scalar(0, 0, 255);namedWindow("output img4");  //默认自动窗口大小imshow("output img4", m1);//用zeros初始化空白图像Mat z;//z = Mat::zeros(src.size(), src.type());//z = Mat::zeros(2, 2, CV_8UC1);z = Mat::eye(2, 3, CV_8UC1); //对角矩阵cout << "z=" << endl << z << endl;/*z=[  1,   0,   0;0,   1,   0]*///定义小数组Mat csrc;Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);filter2D(src, csrc, -1, kernel);namedWindow("output img5");    //默认自动窗口大小imshow("output img5", csrc);waitKey(0);return 0;
}

VS编译运行结果:

【opencv4】opencv教程 C++ 4、Mat对象(深拷贝:clone()、copyTo(),create()创建图片,zeros()、eye()初始化空白图像,Scalar()创建向量)相关推荐

  1. c++版本opencv(04.认识Mat对象-05.Mat对象创建与使用-06.遍历与访问每个像素-)

    c++版本opencv(04.认识Mat对象-05.Mat对象创建与使用-06.遍历与访问每个像素-) 一.04.认识Mat对象- 二,05.Mat对象创建与使用- 三,06.遍历与访问每个像素- 来 ...

  2. 计算机视觉之OpenCV教程 ---Mat类基础(一)

    机器视觉之OpenCV教程图像容器Mat类基础一(一) 零.OpenCV概述 基本上在机器识别的领域 ,都有OpenCV的身影 . OpenCV中基本上包含了所有的机器视觉所用到的算法 , 即使没有也 ...

  3. OpenCV【零】—————cv::Mat——Mat对象创建方法

    OpenCV (一)--Mat对象创建方法 目录 OpenCV (一)--Mat对象创建方法 1. cv::Mat优点及原理(本质类) 2. Mat类拷贝及对象的创建方法 3. Mat 对象元素的高效 ...

  4. 【opencv4】opencv视频教程 C++(opencv教程)2、加载imread()(以灰度加载),修改,保存图像

    上一讲:[opencv4]opencv视频教程 C++(opencv教程)1.opencv介绍和环境搭建 下一讲:[opencv4]opencv视频教程 C++(opencv教程)3.矩阵的掩膜操作( ...

  5. 【opencv4】opencv视频教程 C++(opencv教程)1、opencv介绍和环境搭建

    下一讲:[opencv4]opencv视频教程 C++(opencv教程)2.加载,修改,保存图像 [opencv_C++] 入门强推!!![B站最全] 文章目录 opencv介绍和环境搭建 open ...

  6. 计算机视觉之OpenCV教程 --- Mat图像类基础(二)

    机器视觉之OpenCV教程图像容器Mat类基础一(二) 一.Mat像素点的存储方法 色彩空间是指我们通过组合颜色分量来对各种颜色编码 灰度图像: 从黑到白 ,逐渐过渡 , 划分成若干灰度级别 彩色图像 ...

  7. Mat—基础图像容器(OpenCV教程)

    目标 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图像到我们的数字设备时我们的记录是图像 ...

  8. OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算

    数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值 ...

  9. OpenCV 3.1.0中的Mat对象使用

    一: Mat介绍 OpenCV刚出来的时候图像加载内存之后的对象是IplImage作为数据对象,里面存储了图像的像素数据和宽.高.位图深度.图像大小.通道数等基本属性.IplImage结构是C语言体系 ...

最新文章

  1. 1020 Tree Traversals
  2. 脑机接口技术重大突破!首次帮助瘫痪男子恢复运动和触觉
  3. 【技术干货】如何进行低功耗设计和开发
  4. python第五章_Python数据分析-第5章Series(下)
  5. php phppowerpoint 生成表格_php之EXCEL导出代码生成器的实现思路
  6. AB1601 IO口反应延时的问题
  7. mybatis项目报java.sql.SQLException: Numeric Overflow的异常
  8. 好老婆的作息时间(做女人真悲哀 ……)
  9. 压力、焦虑远远超出全国平均值,近4成程序员心理不健康?
  10. python语言在命名上是什么敏感的_一文轻松掌握python语言命名规范规则
  11. 行业术语001--关键绩效指标KPI_NLP_ACL
  12. leftjoin多了性能下降_MySQL 性能优化总结
  13. 最好用的 3 个 Windows EPUB 阅读器推荐
  14. win10u盘被写保护怎么解除_win10系统磁盘被写保护如何解除 磁盘被写保护解除方法...
  15. 八爪鱼采集ajax表格,如何快速统计简书数据——八爪鱼采集器(二)
  16. (websocket)协议中Ping Pong,Socket通讯ping pong(长连接),心跳包
  17. Padding Oracle攻击(POODLE)技术分析
  18. 单片机开发产品流程,照这个来没错!
  19. 【mysql报错】Data truncation: Data too long for column ‘XXX‘ at row 1
  20. vue 中父子组件传递通信(看图就会了,皮卡皮卡)

热门文章

  1. 卸载受密码保护SEP Norton 11
  2. java中filereader读取文件_java – 如何使用FileReader逐行读取
  3. field module的on input和on request区别
  4. wsdl 与 soap协议详解
  5. 为你的集成需求选择合适的ESB
  6. SAP SD基本业务总结
  7. 年入百万还是低龄低收入?9.04亿网民的真实面目,都藏在这些数据里
  8. python中的字符串是什么,一文秒懂Python中的字符串
  9. 台式计算机 启天 m4600,联想启天M4600-N000:高效的焕新之选——台式机
  10. 天平游码读数例题_电子天平偏载误差的检定与处理