Tag: opencv

opencv – TypeError:无法读取未定义的属性“长度”

我最近安装了opencv并执行了npm install 。 这样做后,我给了一些示例代码,看看它是否工作,但它不工作,我不知道为什么。 也许我安装不正确,我是这个新手。 这里是代码: cv.readImage("./examples/files/mona.png", function(err, im){ im.detectObject(cv.FACE_CASCADE, {}, function(err, faces){ for (var i=0;i<faces.length; i++){ var x = faces[i] im.ellipse(xx + x.width/2, xy + x.height/2, x.width/2, x.height/2); } im.save('./out.jpg'); }); })

OpenCV绘图vs SVG渲染性能

我需要非常快地渲染vectorgraphics,以便在OpenCV(在nodejs中)中使用它。 最简单的方法来呈现椭圆形等简单的形状是使用OpenCV绘图function。 在我的multithreadingtesting程序中,我有〜625个1通道512 * 512的Mat,每秒有1个随机填充的椭圆。 以最快的速度在nodejs SVG到PNG渲染器'librsvg'我只有〜277相同的席夫每秒。 我的目的不够快。 我发现了另一个基于OpenGL的SVG渲染器 – SVGL ,但是我没有testing它的性能,没有绑定节点,只有C ++。 我将需要渲染比一个椭圆更复杂的vectorgraphics。 所以,如果我尝试实现OpenCV所需的所有绘图function,我希望有很多的工作,而且我不确定在复杂的vector图像的情况下OpenCV性能是否仍然可以接受。 “复杂”我的意思是数以百计的半透明圆弧,贝塞尔或某种圆形的多边形,没有填充或填充实心的半透明的颜色,或可能与渐变。 而我想把它渲染到很大的Mat,可能是1024 * 768左右。 SVG已经拥有了我所需要的所有东西,但是我不知道C ++,所以它(可能)也会花费很多时间来实现SVGL的绑定,而我仍然不知道它的性能 可能有一些替代的开源方式?

NodeJS – OpenCV错误: – libopencv_calib3d.so.2.4:无法打开共享对象文件:没有这样的文件或目录

我试图在NodeJS中安装OpenCV,但我得到错误。 即使我已经在我的Linux机器(Linux Mint Cinnamon)上安装了OpenCV。 错误: libopencv_calib3d.so.2.4:无法打开共享对象文件:没有这样的文件或目录 谢谢!

如何检查该jpeg文件包含DNL标记与nodejs?

在我的应用程序中,我使用nodejs的opencv绑定。 几天前,它开始崩溃的一些文件错误: OpenCV Error: Unknown error code -10 (Raw image encoder error: Empty JPEG image (DNL not supported)) in throwOnEror file /home/…/opencv/src/modules/highgui/src/grfmt_base.cpp, line 131 terminate called after throwing an instance of 'cv::Exception' 如何检查该文件是否包含DNL标记?

我是否应该包装一个完全包含在node.js函数中的C ++对象

我正在尝试写一个node.js的扩展。 我想有一个读取图像的函数(我正在使用opencv)计算一些东西并返回一个值,所以input是一个string,数字是一个数字。 我应该用opencv的Mat来包装吗? 我设法读取图像,但是当我尝试调整它(使用cv :: resize)时,我得到一个exception: C:\ NodeEngine.node 在Object..node(module.js:474:11) 我的设置是Windows 7 64位,Visual Studio 2010(我正在编译一个64位扩展) 谢谢

使用node.js中的opencv-node将24位RGB图像转换为8位灰度

我试图从连接到Raspberry Pi的networking摄像头的node.js中捕捉图像。 捕捉工作正常,但现在当我想传输的图像,我有一些严重的问题与帧率和滞后。 现在我的第一个想法是将RGB图像转换为8位灰度,这应该提高因子3的性能(我希望..)。 我正在使用node.js和opencv节点。 在这里你可以看到一些代码片段: var startT = new Date().getTime(); var capture = new cv.VideoCapture(); var frame = new cv.Mat; var grey = new cv.Mat; var imgPath = __dirname + "/ramdisk/"; var frame_number = 0; capture.open(0); if (!capture.isOpened()) { console.log("aCapLive could not open capture!"); return; } function ImgCap() { var elapsed = (new Date().getTime() […]

WebRTC服务器PeerJS获取数据stream

我想在Node.js中使用videostream进行服务器端工作的同时设置video通话服务。 兼容性不是我的项目的问题,所以WebRTC似乎是一个明显的select。 我发现PeerJS,它允许真正简单的使用WebRTC。 Wh服务器可以在Node.js脚本中启动。 我想采取这个videostream,并在服务器上使用OpenCV做一些计算。 我考虑使用类似Binary.js来传输video数据,但这会慢得多。 我怎样才能得到我的Node.js服务器上的WebRTCvideostream? 像下面这样 var PeerServer = require('peer').PeerServer; var server = new PeerServer({ port: 9000 }); server.on('data', function (data) { do_something_with_open_cv(data); }); 显然这需要video块是完整的帧。 我能以这种方式访问​​这个stream吗?

比较node.js中的图像(使用例如opencv)

我想要做的是使用node.js获取图像差异。 最终,我想有一个方法,期望例如两个文件path或图像数据输出减法。 不知何故,像imagemagick中的比较function。 就像是: var comparison_result = compareModule.compare('./image1.png', './image2.png'); 此外,我想获得标记差异的结果图像中的斑点位置。 喜欢这个: comparison_result.forEach(function(difference) { console.log("A difference occurred at " + difference.x + "|" + difference.y); }); 我安装了node-opencv ,但是我找不到将基本opencv c ++函数映射到node.js的文档。 我想使用的function是cvSub 。 我想避免使用js-imagediff,因为它与canvas一起工作,对“cairo”有依赖性,我不确定是否可以访问这些点,因为在文档中它似乎只是将差异作为图像返回。

Node.js和OpenCV

我无法通过npm opencv软件包进行面部跟踪和检测。 我现在只是试图画出一个圆圈。 我列出了下面的错误和下面的文件。 我不确定它是否只是一个具有约束力的问题,如果是的话,我应该采取什么措施来解决它。 OpenCV(2.4.8.2)通过brew FYI安装 – 这可能是我猜的版本 错误: /Users/gwilliams2/Sites/facetracking/node_modules/opencv/lib/opencv.js:29 var face_cascade = new cv.CascadeClassifier(classifier); ^ TypeError: Error loading file at Matrix.matrix.detectObject (/Users/gwilliams2/Sites/facetracking/node_modules/opencv/lib/opencv.js:29:23) at /Users/gwilliams2/Sites/facetracking/server.js:170:8 at Socket.<anonymous> (/Users/gwilliams2/Sites/facetracking/server.js:161:11) at Socket.EventEmitter.emit [as $emit] (events.js:95:17) at SocketNamespace.handlePacket (/Users/gwilliams2/Sites/facetracking/node_modules/socket.io/lib/namespace.js:335:22) at Manager.onClientMessage (/Users/gwilliams2/Sites/facetracking/node_modules/socket.io/lib/manager.js:488:38) at WebSocket.Transport.onMessage (/Users/gwilliams2/Sites/facetracking/node_modules/socket.io/lib/transport.js:387:20) at Parser.<anonymous> (/Users/gwilliams2/Sites/facetracking/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10) at Parser.EventEmitter.emit (events.js:95:17) at finish (/Users/gwilliams2/Sites/facetracking/node_modules/socket.io/lib/transports/websocket/hybi-16.js:288:16) client.js var APP […]

OpenCV声明失败types不匹配

我正在使用节点opencv,我想获得两个PNG图像的标准,但我有这个: OpenCV错误:声明失败(src1.size == src2.size && src1.type()== src2.type())在标准,文件/build/opencv-RI6cfE/opencv-2.4.9.1+dfsg1/modules/core /src/stat.cpp,第1978行 大小是相等的,types是不同的。 第一个Mat返回16和3以及第二个24和4的type()和channels()方法。 我试图做convertGrayscale与两个图像,并得到“错误:图像是没有3通道”(好,第二有4个通道,但首先?) 我也试图做second.convertTo(第二,16),但得到了 libpng警告:iCCP:已知错误的sRGBconfiguration文件 并没有效果,second.type()仍然返回24 有什么方法可以将任何types的Mat转换为某种灰度? 我打算处理很多不同types的图像,我需要把它们与灰度作比较。 这是我的脚本: var Promise = require("bluebird") , fs = Promise.promisifyAll(require('fs')) , cv = require('./opencv-build/node-opencv/lib/opencv'); var readImage = Promise.promisify(cv.readImage); var ImageSimilarity = Promise.promisify(cv.ImageSimilarity);; var imgdir = __dirname+'/img/'; var img_o = imgdir + 'src/walken.png'; var img_d = imgdir + 'dst/walken.png'; readImage(img_o). then(function(first){ […]