[OpenCV][C++编程] cv::mat的定义与赋值 |
您所在的位置:网站首页 › c++读一行文件 › [OpenCV][C++编程] cv::mat的定义与赋值 |
文章目录
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 |