[OpenCV][C++编程] cv::mat的定义与赋值

您所在的位置:网站首页 c++读一行文件 [OpenCV][C++编程] cv::mat的定义与赋值

[OpenCV][C++编程] cv::mat的定义与赋值

2023-05-27 16:40| 来源: 网络整理| 查看: 265

文章目录 0.在pro文件中添加opencv的库0.1 INCLUDEPATH0.2 LIBS 1. cv::Mat的创建1.1 默认的构造函数1.2使用mat_(变量尺寸)函数进行创建(推荐使用)1.3 构造一些特殊矩阵1.4 克隆其他矩阵1.5 基于其他mat变量建立更小尺寸的mat 2.mat的赋值2.1 针对某个点的赋值2.2在创建mat变量时赋值2.3 采用枚举法赋值2.4 循环赋值

0.在pro文件中添加opencv的库 0.1 INCLUDEPATH

可以通过在/目录下直接搜索opencv,确定opencv所在的目录:

INCLUDEPATH += \ /usr/include/opencv4 0.2 LIBS LIBS += \ -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_ml lopencv_core 是opencv的核心,-lopencv_highgui包含读取图像和显示图像的函数-lopencv_imgproc包含图像处理函数(非机器学习方法),例如线性滤波,边缘检测、膨胀腐蚀、检测直线、仿射变换等等。-lopencv_ml包含机器学习算法(贝叶斯分类、k-近邻分类器、SVM、决策树、EM算法等待) 1. cv::Mat的创建 1.1 默认的构造函数

可以直接采用下面的形式:cv::Mat mat(sizeRow,sizeCol,type)定义mat变量的尺寸和类型。

type可选项有CV_8UC1、CV_8SC1等等。它的数据含义是: CV_数据类型_数据的通道数量

cv的类型编号定义: #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

通过mat.type()可以输出mat变量的类型。

C1,C2,C3,C4代表数据通道数:

C1:灰度图像,单个数字C2:每一个可以表示一个二维向量C3:RGB图像C4:PNG格式图像除了RGB,还有一个透明度通道。 #include #include #include #include int main(int argc, char *argv[]) { //QCoreApplication a(argc, argv); // cv::Mat mat1 = cv::Mat_(3,3); // std::cout 5,6,7,8,1,2,3,4 }; cv::Mat b = cv::Mat(2, 2, CV_32FC2, a); 2.4 循环赋值

与通过枚举法赋值方法相类似,循环法赋值也是对矩阵中的每一位元素进行赋值,但是可以不在声明变量的时候进行赋值,而且可以对矩阵中的任意部分进行赋值:

cv::Mat c = cv::Mat_(3, 3); //定义一个3*3的矩阵 for (int i = 0; i c.at(i, j) = i+j; } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3