2017-09-05 121 views
1

我最近安装了opencv并执行了npm installopencv - TypeError:无法读取未定义的属性“长度”

之后,我给了一些示例代码,看看它是否有效,但它不起作用,我不知道为什么。也许我错误地安装了它,我是这个新手。下面是代码:

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(x.x + x.width/2, x.y + x.height/2, x.width/2, x.height/2); 
    } 
    im.save('./out.jpg'); 
    }); 
}) 
+0

我相信你的'faces'对象是未定义的(#noSh!t),因为你可能在回调中的'err'对象中有错误。试着在控制台上打印'err',看看它给了你什么。 console.error(ERR); – Philippe

+0

我假设你的文件路径是不正确的'。/ examples/files/mona.png',它是一个带有代码的例子路径,根据你的目录结构来修复它。尝试'console.log(err);'第一行后 –

+0

使用'length'的唯一地方是在循环中,所以'faces'显然不是你想象的那样。 – adeneo

回答

0

你应该把“故宫安装OpenCV --save”安装它,但因为没有相关性的问题,所以你安装它的权利。尝试做console.log(faces),因为它的结果是空的,这就是为什么长度未定义的原因。 还要确保你给出的“./examples/files/mona.png”路径中的图像确实存在。

+0

好吧,所以我尝试了'npm install opencv --sav'。我得到两个错误:node-pre-gyp ERR!试图下载(403)和node-pre-gyp ERR!未找到预构建的二进制文件。但是当使用'build-from-source'时,它就起作用了。请任何帮助,将不胜感激。 @ Asim Raja – Danny

+0

我试过npm install opencv - 保存它对我有用,你想要做什么?此外你有没有听过你的路径“./examples/files/mona.png”? “mona.png”是否存在? – Asim

+0

我在代码中添加了'var faces'。 'console.log(faces)输出未定义,'console.log(err)为空' – Danny

相关问题