OpenCV_Mat类对象常用的构造方法及初始化方法
OpenCV_Mat类对象常用的构造方法及初始化方法
说明:本文提供的示例代码请到页面 https://www.hhai.cc/thread-71-1-1.html 查看。
OpenCV_Mat类对象常用的构造方法及初始化方法如下:
目录
- 01-Mat::Mat()
- 02-Mat::Mat(int rows, int cols, int type)
- 03-Mat::Mat(Size size, int type)
- 04-Mat::Mat(int rows, int cols, int type, const Scalar& s)
- 05-Mat::Mat(Size size, int type, const Scalar& s)
- 06-Mat::Mat(const Mat& m)
- 07-初始化一个所有元素值都为零的矩阵
- 08-初始化一个所有元素值都为1的矩阵
- 09-初始化一个单位矩阵(对角线元素为1)
- 10-初始化矩阵的每一个元素为不同的任意值(利用重载运算符<<)
- 11-通过别的Mat对象的属性值创建一个新的Mat对象
- 12-复制别的Mat对象的某个区域形成新的Mat对象
01-Mat::Mat()
无参数的构造方法
02-Mat::Mat(int rows, int cols, int type)
创建行数为rows,列数为cols,类型为type的图像。
关于参数type的可取值及意义,可参见页面 https://www.hhai.cc/thread-72-1-1.html
03-Mat::Mat(Size size, int type)
创建大小为size,类型为type的图像。
04-Mat::Mat(int rows, int cols, int type, const Scalar& s)
创建行数为rows,列数为cols,类型为type的图像,并将所有元素初始化为s。
05-Mat::Mat(Size size, int type, const Scalar& s)
创建大小为size,类型为type的图像,并将所有元素初始化为s。
06-Mat::Mat(const Mat& m)
将对象m赋值给新创建的对象,此时不会对图像数据进行复制,对象m和新对象共用图像数据。
以上六种构造方法的示例代码请看本篇博文开头的说明。
示例代码运行结果如下图所示:
从上面的运行结果我们可以看出,Mat对象的数据如果没有指定初始值,那么其值为205,注意不是255。
要特别注意的地方是:使用cv::Size()设定大小时,第一个参数是指矩阵有多少列,第二个参数是指矩阵有多少行,即cv::Size(width,height),比如上面代码中的方法3和方法5。
07-初始化一个所有元素值都为零的矩阵
可利用Mat类的成员函数Mat::zeros()实现初始化一个所有元素值都为零的矩阵
示例代码请查看本篇博文开头的说明。
示例代码运行结果如下图所示:
08-初始化一个所有元素值都为1的矩阵
可利用Mat类的成员函数Mat::ones()实现初始化一个所有元素值都为1的矩阵
成员函数Mat::ones()的使用与上一个Mat::zeros()的使用完全相同,这里就不给示例代码了。
09-初始化一个单位矩阵(对角线元素为1)
可以用函数setIdentity()实现初始化一个单位矩阵,
详细介绍见官方文档链接,官方文档链接如下:
https://docs.opencv.org/4.4.0/d2/de8/group__core__array.html#ga388d7575224a4a277ceb98ccaa327c99
10-初始化矩阵的每一个元素为不同的任意值(利用重载运算符<<)
示例代码请查看本篇博文开头的说明。
示例代码运行结果如下图所示:
注意B1的数据类型为float类型,C1的数据类型为double类型。这导致了它们输出值的不同,从提高精度的角度来说,咱们能用double型就用double型。
11-通过别的Mat对象的属性值创建一个新的Mat对象
示例代码请查看本篇博文开头的说明。
示例代码运行结果如下图所示:
12-复制别的Mat对象的某个区域形成新的Mat对象
关于这个,请大家参考页面 https://www.hhai.cc/thread-127-1-1.html 打开页面后搜索关键词“Mat ROI_img” 即可找到相关示例代码。
相关文章
- opencv官方文档:Python通过url获取图片的几种方法以及图像格式之间的转换,imencode()+imdecode()使用
- C++ opencv高速样例学习——读图显示
- 使用OpenCV读、操作、写图像并与bash合作对某个文件夹下全部图像进行相似处理
- 详解OpenCV的视频背景/前景分割(背景建模/前景提取)类cv::bgsegm::BackgroundSubtractorMOG,并利用它实现对道路监控视频前景/背景的提取
- OpenCV_Mat类对象常用属性值的获取方法
- Python库Numpy中的数据类型与OpenCV中数据类型的对应关系以及改写相关代码时需注意的地方
- 详解OpenCV的坐标重映射函数remap()的两种使用方法并附使用它得到图像的水平镜像和垂直镜像的示例代码
- 利用OpenCV的函数warpAffine()做图像的仿射变换【实现图像的平移、缩放、旋转、翻转等操作】
- 利用OpenCV实现图像拼接的代码
- opencv中查看mat位图的像素幅度(Cv::matStep)
- 遍历opencv中的mat像素的几种方法和概念
- c#和c++的opencv位图数据参数互换问题解决方法
- 【图像识别】OpenCV-sift文件无法生成及其他问题
- opencv多线程显示的问题和解决方法
- ubuntu opencv的使用
- Python Opencv 之 简单的视频裁剪功能的实现
- OpenCV+Mediapipe+UDP+Unity挥手电子书翻页
- 【图像处理】——Python+opencv实现二值图像的轮廓边界跟踪以及轮廓面积周长的求解(findcontours函数和contourArea函数)
- 【常用网址】——opencv等
- 全网最简单的安装opencv4.5+opencv_contrib-4.5.0的方法