opencv c++ mat 函数回传 程序实例
时间: 2024-10-14 13:10:00 浏览: 39
OpenCV (Open Source Computer Vision Library) 的 `Mat` 类是其核心数据结构,用于存储二维图像数据。当你从函数中获取到一个 `Mat` 对象时,通常会将其视为矩阵操作的基础。以下是一个简单的 C++ 示例,展示如何创建 `Mat`、分配内存并读取图像文件:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 引入OpenCV库
cv:: Mat src; // 创建一个空的Mat对象
// 读取图像文件
std::string imagePath = "path_to_your_image.jpg";
if (!cv::imread(imagePath, src)) { // 如果图片加载失败
std::cout << "Could not open or find the image." << std::endl;
return -1;
}
// 打印矩阵维度
int rows = src.rows;
int cols = src.cols;
std::cout << "Image size is: " << rows << "x" << cols << std::endl;
// 进行一些处理,例如显示原图
cv::imshow("Original Image", src);
cv::.waitKey(0); // 等待用户按键
// 回传处理后的结果
// 注意:这里假设你对src进行了处理,并将处理结果保存在一个新Mat对象dest中
cv::Mat dest = ...; // 替换为你的处理过程
// 回传dest(如果需要)
return 0;
}
```
在这个例子中,`imread()` 函数返回一个 `Mat` 对象,表示读取的图像。你可以对其进行进一步操作,如转换、裁剪等,然后在需要的地方返回处理后的 `Mat`。
阅读全文