在C++中将cv::Mat保存为文件,然后在Python中加载为NumPy数组,可以使用OpenCV和NumPy库来完成。以下是一个示例代码,展示了如何执行这些步骤:
C++ 代码(使用OpenCV保存图像):
python#include <opencv2/opencv.hpp>
int main()
{
cv::Mat outimg; // 假设你已经创建了名为 outimg 的 cv::Mat 对象
// 保存为文件
cv::FileStorage fs("outimg.yml", cv::FileStorage::WRITE);
fs << "outimg" << outimg;
fs.release();
return 0;
}
Python 代码(使用NumPy加载数据):
pythonimport numpy as np
import cv2
# 加载数据
fs = cv2.FileStorage("outimg.yml", cv2.FILE_STORAGE_READ)
outimg = fs.getNode("outimg").mat()
fs.release()
# 将数据转换为 NumPy 数组
outimg_np = np.array(outimg)
# 打印数组
print(outimg_np)
这段代码将保存名为 "outimg.yml" 的文件,然后使用 Python 读取该文件并将其转换为 NumPy 数组。你可以根据需要修改文件名和路径。确保在 C++ 程序中创建的 cv::Mat 对象命名为 outimg,以便与 Python 中的节点名称相匹配。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!