opencv_tutorial_code学习——Mat创建方法

本文详细介绍了OpenCV中Mat对象的创建方法,包括使用构造函数、create()函数、多维数组、对角线矩阵、全零全一矩阵、双精度矩阵、行列克隆、随机数矩阵、2D和3D点以及从向量转换为Mat等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mat创建方法

From tutorial_code\core\mat_the_basic_image_container\mat_the_basic_image_container.cpp

1、通过构造函数初始化:

Mat M(2,2, CV_8UC3, Scalar(0,0,255));



2、通过create()函数初始化

M.create(4,4, CV_8UC(2));

M.create( MAT.size(), MAT.depth() );

3、创建多维Mat

int sz[3] = {2,2,2};

Mat L(3,sz, CV_8UC(1), Scalar::all(0));

4、创建对角线Mat、全一Mat、全零Mat

Mat E = Mat::eye(4, 4, CV_64F);

Mat O = Mat::ones(2, 2, CV_32F);

Mat Z = Mat::zeros(3,3,CV_8UC1);

       

5、创建双精度Mat

Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);


6、取矩阵一列\行

Mat RowClone = C.row(1).clone();


7、创建随机数Mat

Mat R = Mat(3, 2, CV_8UC3);

randu(R, Scalar::all(0), Scalar::all(255));


8、创建2D点

Point2f P(5, 1);


9、创建3D点

Point3f P3f(2, 6, 7);



10、用Mat格式输出Vector

vector<float> v;

v.push_back( (float)CV_PI);  v.push_back(2);   v.push_back(3.01f);

cout<<Mat(v)


11、Mat = Mat1( Range( Mat1.rows/2, Mat1.rows - 1 ), Range( 0, Mat1.cols - 1 ) );

<think>好的,我现在需要帮助用户解决在Visual Studio Code中配置OpenCV环境的问题。首先,我需要回顾用户提供的引用内容,但发现引用[1]和引用[2]似乎和OpenCV在VSCode中的配置有关,但具体内容可能涉及安装步骤或错误解决方案。 用户的问题是如何在VSCode中设置和配置OpenCV环境,特别是C++的情况。根据我的知识,配置步骤通常包括安装OpenCV库、配置编译器路径、设置tasks.json和c_cpp_properties.json等文件。但需要结合用户提供的引用内容,可能引用中有特定的解决方案或官方文档的步骤。 首先,我需要检查用户提供的引用内容。引用[1]提到在Ubuntu OS的VSCode中安装OpenCV for C++时发生错误,并参考了官方文档的解决方案。引用[2]则可能涉及在Microsoft Visual Studio中构建应用的方法,但用户现在问的是VSCode,所以可能需要调整步骤。 接下来,我需要整理步骤。首先,安装OpenCV。在Ubuntu上,通常使用apt安装或者从源码编译。用户可能已经安装了OpenCV,但需要确认是否正确安装,并且路径是否正确。然后,配置VSCode的C++环境,包括设置includePath、库路径和链接库。 在tasks.json中,需要添加编译器的参数,比如-I来指定OpenCV的头文件路径,-l来链接库文件。在c_cpp_properties.json中,需要配置includePath,让IntelliSense能找到OpenCV的头文件。此外,launch.json需要正确配置可执行文件的路径。 可能用户遇到的常见问题包括路径错误、库未正确链接,或者编译器找不到头文件。根据引用[1]中的官方文档解决方案,可能需要检查安装步骤是否正确,或者是否有环境变量需要设置,比如PKG_CONFIG_PATH。 另外,用户可能需要在编译时使用pkg-config来获取正确的编译选项,例如使用`pkg-config --cflags --libs opencv4`来生成所需的-I和-l参数。这可能需要在tasks.json的args部分添加这些参数。 测试环节也很重要,编写一个简单的OpenCV程序,比如读取图像,来验证配置是否成功。如果出现错误,可能需要检查路径是否正确,或者库文件是否存在。 现在需要将这些步骤结构化,分点说明,确保用户能逐步操作。同时,需要引用提供的引用内容,但注意用户提供的引用[1]和[2]的具体内容可能更详细,但在这里由于信息有限,可能需要根据一般知识进行回答,并适当标注引用。 最后,生成相关问题,帮助用户深入理解,比如如何解决常见错误,跨平台配置,或者调试技巧等。</think>### 如何在 Visual Studio Code 中设置和配置 OpenCV 环境(C++) #### 1. 安装 OpenCV 库 - **Ubuntu/Debian 系统** 使用以下命令安装预编译的 OpenCV 包: ```bash sudo apt update sudo apt install libopencv-dev ``` 或从[OpenCV 官方文档](https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.html)编译源码安装[^1]。 - **Windows 系统** 通过 [vcpkg](https://vcpkg.io/) 或源码编译安装,需配置环境变量 `OpenCV_DIR` 指向安装路径[^2]。 #### 2. 配置 VSCode 开发环境 - **安装扩展** 安装 C++ 扩展包:`C/C++`、`CMake Tools`(可选)。 - **配置 `c_cpp_properties.json`** 按 `Ctrl+Shift+P` → 输入 `C/C++: Edit Configurations (UI)` → 添加 OpenCV 头文件路径: ```json "includePath": [ "/usr/include/opencv4/**" // Linux 路径示例 // Windows 示例: "${env:OpenCV_DIR}/include" ] ``` - **配置 `tasks.json`** 按 `Ctrl+Shift+P` → 输入 `Tasks: Configure Task` → 添加编译参数(示例为 Linux): ```json "args": [ "-I/usr/include/opencv4", "-lopencv_core", "-lopencv_highgui", // 按需添加其他库 "-o", "${fileDirname}/${fileBasenameNoExtension}" ] ``` 或使用 `pkg-config` 自动获取参数(推荐): ```json "args": [ "$(pkg-config --cflags --libs opencv4)", "-o", "${fileDirname}/${fileBasenameNoExtension}" ] ``` #### 3. 验证配置 创建测试文件 `test_opencv.cpp`: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { Mat image = imread("test.jpg"); if (image.empty()) return -1; imshow("Image", image); waitKey(0); return 0; } ``` 编译运行后若显示图像,则配置成功。 #### 4. 常见问题解决 - **找不到头文件**:检查 `includePath` 是否包含正确的 OpenCV 头文件目录[^1]。 - **链接错误**:确认 `tasks.json` 中 `-l` 参数包含所有依赖的 OpenCV 库(如 `-lopencv_core -lopencv_imgcodecs`)[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值