我试图用一个二维数组创建一个垫子,使用 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
为什么会这样?
好的,我把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;