【发布时间】:2020-05-05 12:38:33
【问题描述】:
我正在尝试使用cv.matFromArray(rows, cols, type, array); 方法从二维数组创建一个垫子。
它适用于像这样的非常小的数组:
let mat = cv.matFromArray(2, 2, cv.CV_8UC1, [255, 255, 128, 128]);
return mat; // works
但是当我基本上对我的图像数组(1024x1024px,值范围从 20 到 230)做同样的事情时,它只会将每个 Mat 值填充为 0
const mat = cv.matFromArray(img_array.length, img_array[0].length, cv.CV_8UC1, img_array);
return mat; // every value is 0
这是为什么呢?
【问题讨论】:
-
您可以在问题中添加
img_array吗? -
不,它是一个 1024x1024 数组,值范围为 20-255
-
我猜我必须将我的二维数组转换为一维数组才能工作。
-
我没有看到您描述的用法的文档。我发现这表明第四个参数是一个标量,而不是一个数组:docs.opencv.org/master/de/d06/tutorial_js_basic_ops.html 看起来标量是一个由 R、G、B、A 组成的数组:docs.opencv.org/master/d5/df1/…
-
我自己找到了解决方案。如果您仍然对
MatFromArray“文档”感到好奇; docs.opencv.org/master/de/d06/tutorial_js_basic_ops.html
标签: javascript opencv mat