你好,堆栈溢出社区。
我试图从opencv矩阵的裁剪部分提取像素值到javascript数组,以便将这些数据输入OCR的张量。我不能使用cv.imshow(),因为它与DOM交互,并且我的进程在web工作者上。
到目前为止,我需要将Opencv转换为js数组:
let src = cv.imread('canvasInput');
let dst = new cv.Mat();
let rect = new cv.Rect(100, 100, 300, 300);
dst = src.roi(rect);
// equivalent(ish) to cv.imshow();
let canvas = document.getElementById('canvasOutput');
let context = canvas.getContext('2d');
let imageData = context.createImageData(dst.cols, dst.rows);
imageData.data.set(new Uint8ClampedArray(dst.data, dst.cols, dst.rows));
canvas.height = dst.rows;
canvas.width = dst.cols;
context.putImageData(imageData, 0, 0);
// end cv.imshow()
src.delete();
dst.delete();如果您将此代码粘贴到Opencv IDE中,然后单击,尝试它,输出似乎会奇怪地抵消。我在这里做错什么了?
提前感谢您的帮助!!
发布于 2021-03-08 16:46:00
我相信这会对你有帮助:
let mat = new cv.Mat();
// Initialise a MatVector
let matVec = new cv.MatVector();
// Push a Mat back into MatVector
matVec.push_back(mat);
// Get a Mat fom MatVector
let cnt = matVec.get(0);
mat.delete(); matVec.delete(); cnt.delete();有关详细信息,请参阅opencv.js文档链接。
https://stackoverflow.com/questions/60245043
复制相似问题