我需要将这些数组值直接初始化为 Mat
对象。我尝试使用 obj.put(i,j,data)
但这不起作用并且 Mat
对象仍然是空的。我需要这个在 Java 中
data [] = {103547.0, 2.0959531E7, 5.152769223E9, 1.415924406121E12, 2.0842905E7,
4.195143491E9, 1.025510364741E12, 5.000561607E9, 9.99289545049E11,
1.332451366923E12}
可以向我解释如何初始化一个 new Mat
对象,我直接插入数组数据吗?
原文由 AciD IoN 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的问题对我来说并不完全清楚,但我假设你正在尝试将
float array
加载到 OpenCVMat
对象中。首先,一定要查看关于在 --- 中构建Mat
C++
文档。因为你有一个一维数组并且(我假设)你知道rows
和columns
你想给你的Mat
构造函数,:你应该使用–这是一个代码示例:
它将输出:
当然,您可以根据需要更改数据类型(例如使用
int
而不是float
)。AUTO_STEP
参数可以忽略,但如果要使用,请务必查看使用说明文档。此外,如果您想更改Mat
的结构(例如,将数组拆分为多行),您可以通过更改rows
和cols
参数来实现在构造函数中:它将输出:
您现在已将
Mat
对象拆分为两行 5 列,而不是 1 行 10 列。在 Java 的情况下: 如果您想在 Java 中执行此操作,那么您已经在正确的轨道上了。但是,您可能忘记指定行、列和通道/深度。像以前一样根据适合您的数据的内容更改行、列和 CvType。您可以执行以下操作:
一定要检查 Mat 上的 Java 文档!