Opencv (JavaScript)从数组中提取的Mat无法工作

问题描述 投票:0回答:1

我试图用一个二维数组创建一个垫子,使用 cv.matFromArray(rows, cols, type, array); 方法,它适用于像这样的小数组。

它可以在像这样的小数组中工作,但当我对我的图像数组(1024x1024px,值范围是20到230)做同样的事情时,它只是把每个Mat值都填到0。

  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

为什么会这样?

javascript opencv mat
1个回答
1
投票

好的,我把2d数组转换成1d,像这样。

[].concat(...img_array);

现在可以用了

img_array; // 1024x1024px 2d array

const mat = cv.matFromArray(img_array.length, img_array[0].length, cv.CV_8UC1, [].concat(...img_array));
return mat;
© www.soinside.com 2019 - 2024. All rights reserved.