将 OpenCV Mat 转换为数组(可能是 NSArray)

Posted

技术标签:

【中文标题】将 OpenCV Mat 转换为数组(可能是 NSArray)【英文标题】:Converting OpenCV Mat to array (possibly NSArray) 【发布时间】:2013-12-27 08:23:43 【问题描述】:

我的 C/C++ 技能生疏了,OpenCV 的文档也很模糊。有没有办法将cv::Matdata 属性转换为数组/NSArray?

我想将其序列化为 JSON,我知道我可以使用 FileStorage 实用程序将其转换为 YAML/XML,但这不是我想要做的。

Mat -> NSArray -> JSON

(我想将内部相机校准值发送到服务器)

谢谢

【问题讨论】:

另一个讨厌的反对票...这个问题已经被访问了很多次,所以我认为它对某些人有用。 【参考方案1】:

你可以使用:

double *d = intrinsics.ptr<double>(0);

这将为您提供一个包含 9 个双精度数的数组。 (这只是一个演员表,所以要小心不要让内在函数 Mat 超出范围。)

double d = intrinsics.at<double>(i,j);

访问单个元素。

【讨论】:

以上是关于将 OpenCV Mat 转换为数组(可能是 NSArray)的主要内容,如果未能解决你的问题,请参考以下文章

android:如何将 int[] 转换为 OpenCV Mat c++?

Android将字节数组从Camera API转换为颜色Mat对象openCV

将 numpy 切片转换为 Opencv c++ Mat

如何将 Opencv Mat 转换为 JPEG 字符数据

OpenCV Mat 到 alglib 真实二维数组的转换

将 Mat 转换为 **float