首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示没有Opencv.js ()的cv.imshow矩阵

显示没有Opencv.js ()的cv.imshow矩阵
EN

Stack Overflow用户
提问于 2020-02-16 03:01:13
回答 1查看 1.6K关注 0票数 4

你好,堆栈溢出社区。

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

到目前为止,我需要将Opencv转换为js数组:

代码语言:javascript
运行
复制
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中,然后单击,尝试它,输出似乎会奇怪地抵消。我在这里做错什么了?

提前感谢您的帮助!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-08 16:46:00

我相信这会对你有帮助:

代码语言:javascript
运行
复制
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文档链接

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60245043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档