繁体   English   中英

在没有 cv.imshow() 的情况下显示 Opencv.js 矩阵

[英]Displaying Opencv.js Matrix without cv.imshow()

你好堆栈溢出社区。

我试图将像素值从 opencv 矩阵的裁剪部分提取到 javascript 数组,以便将该数据提供给 OCR 的张量。 我不能使用cv.imshow()因为它与 DOM 交互并且我的进程在 web worker 上。

这是我到目前为止从 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 中并单击try it,则输出似乎奇怪地偏移。 我在这里做错了什么?

在此先感谢您的帮助!!

我相信这应该可以帮助你:

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 文档 链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM