当前位置: 首页 > news >正文

找小网站的关键词安徽网络seo

找小网站的关键词,安徽网络seo,从哪个网站找钢做的微商,专业网页制作报价OpenCV中的Mat是一个类#xff0c;它用存储图像信息。由两部分数据组成#xff1a;矩阵头和像素值矩阵。矩阵头包含矩阵尺寸、存储方法、存储地址等信息#xff0c;而像素值矩阵则存储实际的像素值数据。 Mat类在OpenCV中有十分重要的作用#xff0c;图像信息的载入、保存、…          OpenCV中的Mat是一个类它用存储图像信息。由两部分数据组成矩阵头和像素值矩阵。矩阵头包含矩阵尺寸、存储方法、存储地址等信息而像素值矩阵则存储实际的像素值数据。 Mat类在OpenCV中有十分重要的作用图像信息的载入、保存、传递都离不开Mat类。OpenCV用来保存图像矩阵类型的数据信息包括向量、矩阵、灰度或彩色图像等数据。通过使用Mat类可以对图像进行各种操作和变换例如裁剪、旋转、缩放、滤波等。 下面详细介绍Mat类中的常用方法函数。 Mat 类的常用构造函数 Mat类的构造函数原型有很多下面介绍几个常用的构造函数及其用法。 Mat (int rows, int cols, int type) rows图像的像素行数也可以说是以像素为单位的高度。 cols图像的像素列数也可以说是以像素为单位的宽度。 type 数据类型OpenCV的数据类型定义在interface.h中。如下 #define CV_8U 0#define CV_8S 1#define CV_16U 2#define CV_16S 3#define CV_32S 4#define CV_32F 5#define CV_64F 6#define CV_16F 7#define CV_MAKE_TYPE CV_MAKETYPE#define CV_8UC1 CV_MAKETYPE(CV_8U,1)#define CV_8UC2 CV_MAKETYPE(CV_8U,2)#define CV_8UC3 CV_MAKETYPE(CV_8U,3)#define CV_8UC4 CV_MAKETYPE(CV_8U,4)#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))#define CV_8SC1 CV_MAKETYPE(CV_8S,1)#define CV_8SC2 CV_MAKETYPE(CV_8S,2)#define CV_8SC3 CV_MAKETYPE(CV_8S,3)#define CV_8SC4 CV_MAKETYPE(CV_8S,4)#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))#define CV_16UC1 CV_MAKETYPE(CV_16U,1)#define CV_16UC2 CV_MAKETYPE(CV_16U,2)#define CV_16UC3 CV_MAKETYPE(CV_16U,3)#define CV_16UC4 CV_MAKETYPE(CV_16U,4)#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))#define CV_16SC1 CV_MAKETYPE(CV_16S,1)#define CV_16SC2 CV_MAKETYPE(CV_16S,2)#define CV_16SC3 CV_MAKETYPE(CV_16S,3)#define CV_16SC4 CV_MAKETYPE(CV_16S,4)#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))#define CV_32SC1 CV_MAKETYPE(CV_32S,1)#define CV_32SC2 CV_MAKETYPE(CV_32S,2)#define CV_32SC3 CV_MAKETYPE(CV_32S,3)#define CV_32SC4 CV_MAKETYPE(CV_32S,4)#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))#define CV_32FC1 CV_MAKETYPE(CV_32F,1)#define CV_32FC2 CV_MAKETYPE(CV_32F,2)#define CV_32FC3 CV_MAKETYPE(CV_32F,3)#define CV_32FC4 CV_MAKETYPE(CV_32F,4)#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))#define CV_64FC1 CV_MAKETYPE(CV_64F,1)#define CV_64FC2 CV_MAKETYPE(CV_64F,2)#define CV_64FC3 CV_MAKETYPE(CV_64F,3)#define CV_64FC4 CV_MAKETYPE(CV_64F,4)#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))#define CV_16FC1 CV_MAKETYPE(CV_16F,1)#define CV_16FC2 CV_MAKETYPE(CV_16F,2)#define CV_16FC3 CV_MAKETYPE(CV_16F,3)#define CV_16FC4 CV_MAKETYPE(CV_16F,4)#define CV_16FC(n) CV_MAKETYPE(CV_16F,(n)) 下面以实例演示其用法 在VS 中新建一个C 控制台程序完成代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {Mat tmp(100,200, CV_8U);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的数据类型为 tmp.type() endl; }试运行结果如下 说明已成功构造对象。将构造函数的type直接输入0也是同样的结果。如下: Mat tmp(100, 200,0); 如果将type参数用CV_8UC1替代结果又如何如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);Mat tmp(100, 200, CV_8UC1);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的数据类型为 tmp.type() endl; } 试运行的结果如下 结果并未发生改变。修改代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);Mat tmp(100, 200, CV_8UC1);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl; }、试运行的结果如下 再次修改代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);Mat tmp(100, 200, CV_8UC2);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl; } 试运行结果如下 可以看出数据类型与通道数发生了改变位深度是0即8位。再修改代码改成如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);Mat tmp(100, 200, CV_8SC3);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl; }试运行结果如下 说明type参数与位深度与通道数相关。从数据类型定义即可看出如CV_8UC1其中的8U表示位深度为0即8位无符号数据C1表示通道数为1。 Mat (Size size, int type) 这个构造函数与上面构造函数只不过用Size参数代替了rows、cols参数。下面演示其使用。将上面的示例代码修改如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);Mat tmp(Size(100, 200), CV_16UC3);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl; } 试运行结果如下 可以看出Size的第一个参数是cols第二个参数是rows这点需要注意。 MatMat (int rows, int cols, int type, const Scalar s) 修改上面示例程序代码来演示该构造函数的使用代码修改如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;imshow(构造图像, tmp);waitKey(0); 试运行结果如下 可以看出已经构造出蓝色图片的Mat对象。 Mat (Size size, int type, const Scalar s) 这个构造函数与上面的构造函数类似就不再做详细介绍。 Mat (int ndims, const int *sizes, int type) ndims 维数只有1,2有效。 size 包含rowscols的数组名 修改上面示例代码来演示该构造函数的用法修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));int size[] {400,200};Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;imshow(构造图像, tmp);waitKey(0); } 试运行后结果如下 可以看出数组的第一个元素被作为rows第二个元素作为cols。把ndims参数值设为1运行结果如下 可以看出构造对象图片的列变成了1rows依然使用的数组的第一个元素。 Mat (const std::vector int sizes, int type) Mat (int ndims, const int *sizes, int type, const Scalar s) size 装有图像维度数据的vector 对象 type 数据类型 s 含义颜色信息的Scalar参数 修改上面例程中的代码来演示该构造函数的用法修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));vectorint size(2);size[0] 400;size[1] 200;Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;imshow(构造图像, tmp);waitKey(0); }试运行结果如下 可以看出已成功构造对象且vector对象的第一个元素作为rows第二个元素作为cols。 Mat (const Mat m) 以已有的Mat对象构造新的·Mat对象。m Mat源 修改上面代码来演示该构造函数的使用方法修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);Mat tmp Mat(src);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); }试运行结果如下 Mat (int rows, int cols, int type, void *data, size_t stepAUTO_STEP) Mat (Size size, int type, void *data, size_t stepAUTO_STEP) Mat (int ndims, const int *sizes, int type, void *data, const size_t *steps0) Mat (const std::vector int sizes, int type, void *data, const size_t *steps0) rows 构造对象图像rows cols 构造对象图像 cols type 构造对象图像数据类型 data 构造对象图像数据指针 ndims 构造对象图像的维度数 size 包含构造对象rowscols参数的数组名 step 每个行矩阵所占的字节数。 steps 指向step的指针。 修改上面示例代码来演示以上构造函数的用法修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);//Mat tmp Mat(src);Mat tmp Mat(src.rows, src.cols, src.type(),src.data);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); }试运行结果如下 修改上面示例代码来演示另外构造函数的使用修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);//Mat tmp Mat(src);//Mat tmp Mat(src.rows, src.cols, src.type(),src.data);Mat tmp Mat(src.size(), src.type(), src.data);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); } 试运行结果如下 修改上面示例代码来演示另外构造函数的使用修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);//Mat tmp Mat(src);//Mat tmp Mat(src.rows, src.cols, src.type(),src.data);//Mat tmp Mat(src.size(), src.type(), src.data);Mat tmp Mat(700,800, CV_8UC3, src.data800*3);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); }试运行结果如下  Mat (const Mat m, const Range rowRange, const Range colRangeRange::all()) Mat (const Mat m, const Rect roi) Mat (const Mat m, const Range *ranges) Mat (const Mat m, const std::vector Range  ranges) m 分配给构建对象的Mat对象 rowRange 行范围 colRange 列范围 roi 感兴趣的矩形区域 ranges Range数组或Range的vector 容器 用此构造函数构建的Mat对象不会拷贝数据修改新构建对象的数据反而来修改新构建Mat对象的数据会修改已有Mat对象m的数据实质上已有图像构建感兴趣区域对象。 修改上面示例代码来演示构造函数的使用修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);//Mat tmp Mat(src);//Mat tmp Mat(src.rows, src.cols, src.type(),src.data);//Mat tmp Mat(src.size(), src.type(), src.data);//Mat tmp Mat(700,800, CV_8UC3, src.data800*3);Range rowRange Range(0, 700);Range colRange Range(0, 700);Mat tmp Mat(src, rowRange, colRange);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); } 试运行结果如下 修改上面示例代码来演示构造函数的使用修改后的代码如下 #include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);//Mat tmp Mat(src);//Mat tmp Mat(src.rows, src.cols, src.type(),src.data);//Mat tmp Mat(src.size(), src.type(), src.data);//Mat tmp Mat(700,800, CV_8UC3, src.data800*3);//Range rowRange Range(0, 700);//Range colRange Range(0, 700);//Mat tmp Mat(src, rowRange, colRange);Rect rec Rect(100, 0, 700, 700);Mat tmp Mat(src, rec);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); } 试运行结果如下 修改上面代码来演示另一构造函数的使用修改后的代码如下 #include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);//Mat tmp Mat(src);//Mat tmp Mat(src.rows, src.cols, src.type(),src.data);//Mat tmp Mat(src.size(), src.type(), src.data);//Mat tmp Mat(700,800, CV_8UC3, src.data800*3);//Range rowRange Range(0, 700);//Range colRange Range(0, 700);//Mat tmp Mat(src, rowRange, colRange);//Rect rec Rect(100, 0, 700, 700);//Mat tmp Mat(src, rec);Range rowRange Range(0, 700);Range colRange Range(100, 700);Range ranges[] {rowRange, colRange};Mat tmp Mat(src, ranges);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); } 试运行结果如下 修改上面代码来演示另一构造函数的使用修改后的代码如下 // OpenCVMatTest.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。#include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main() {//Mat tmp(100,200, CV_8U);//Mat tmp(100, 200, CV_8UC2);//Mat tmp(100, 200, CV_8SC3);//Mat tmp Mat(Size(400, 200), CV_8UC3, Scalar(255,0,0));//int size[] {400,200};// Mat tmp Mat(2, size, CV_8UC3, Scalar(0,255,0));//Mat tmp Mat(1, size, CV_8UC3, Scalar(0, 255, 0));//vectorint size(2);//size[0] 400;//size[1] 200;//Mat tmp Mat(size, CV_8UC3, Scalar(0, 255, 0));Mat src imread(1.jpg);src.resize(src.rows / 2, src.cols / 2);//Mat tmp Mat(src);//Mat tmp Mat(src.rows, src.cols, src.type(),src.data);//Mat tmp Mat(src.size(), src.type(), src.data);//Mat tmp Mat(700,800, CV_8UC3, src.data800*3);//Range rowRange Range(0, 700);//Range colRange Range(0, 700);//Mat tmp Mat(src, rowRange, colRange);//Rect rec Rect(100, 0, 700, 700);//Mat tmp Mat(src, rec);Range rowRange Range(0, 700);Range colRange Range(100, 700);//Range ranges[] {rowRange, colRange};//Mat tmp Mat(src, ranges);vectorRange ranges1(2);ranges1[0] rowRange;ranges1[1] colRange;Mat tmp Mat(src, ranges1);cout 构造Mat对象的高度为 tmp.rows endl;cout 构造Mat对象的宽度为 tmp.cols endl;cout 构造Mat对象的通道数为 tmp.channels() endl;cout 构造Mat对象的位深度为 tmp.depth() endl;cout 构造Mat对象的数据类型为 tmp.type() endl;cout 构造Mat对象的Size为 tmp.size() endl;cout 构造Mat对象的Step为 tmp.step endl;imshow(构造图像, tmp);waitKey(0); } 由于篇幅关系OpenCV构造函数暂时介绍在这里将在下篇博文中继续介绍OpenCV Mat类。 本篇 博文示例是基于OpenCV4.8opencv目录位于d盘根目录下及VS2022。示例源码已上传到CSDN其链接为https://download.csdn.net/download/billliu66/88831683
http://www.pierceye.com/news/352574/

相关文章:

  • 无锡锡牛网站建设网站倒计时
  • 南通做外贸网站网站建设培训四川
  • 微小店适合卖做分类网站吗手机开发者网站
  • 广州建企业网站网页设计是啥意思
  • wap手机网站建设刀模 东莞网站建设
  • 怎样做网站的外链做推广优化的网站有哪些内容
  • 永嘉规划建设局网站备案个人网站做淘宝客
  • 枣庄网站建设电话网站怎么做 凡科
  • 视频网站点击链接怎么做的宁波网站建设接单
  • 网站报价表怎么做wordpress 横向扩展
  • 溧阳网站建设哪家好网站建设的教程
  • 360怎么做网站做pop网站
  • 网站建设方案书2000字中国正国级名单
  • 企业网站的布局类型网站移动页面怎么做的
  • 人是用什么做的视频网站吗wordpress如何设水印图片
  • 蛋糕店的网站建设咋写深圳市宝安区邮政编码
  • 东莞横沥网站建设杭州网站制作排名
  • 百合怎么做网站网站开发语
  • 网站搭建哪里找最好天津市建设工程信息网站
  • 有免费注册网站吗做教育网站还挣钱吗
  • 网站做百度推广需要哪些条件店铺推广软文范例
  • 台州企业网站搭建特点迅美网站建设
  • 做营销网站推广官方网站建设方法
  • 网页设计精选网站网站查询功能怎么做
  • 重庆专业网站推广流程建立平台的步骤
  • 舟山市普陀区建设局网站net网站开发 兼职
  • 网站备案流程阿里云南宁网站建设官网
  • h5网站制作介绍简单的静态 新闻 asp 网站源码
  • 济南seo网站推广公司帮别人做彩票网站吗
  • 郑州市网站建设怎么样wordpress wp editor