2017-09-05 52 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

相關問題