使用此代码捕获图像,它在spyder-anaconda上运行良好,但我希望与我的应用程序集成,该应用程序是在node.js平台上进行的,但无法这样做。
python代码的开头如下:
//cam_open.py
import cv2
import numpy as np
aarcascade_frontalface_default.xml"
detector=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cam = cv2.VideoCapture(0)
#------Id=raw_input('enter your id')----
Id=1
path= 'Dataset1'
sampleNum=0
while(True):
ret, img = cam.read();
。 。
和与node.js集成的代码如下:
(注意:我已经使用这段代码来运行其他python脚本并且它在它们上运行得很完美但是当我包含opencv时它会给我错误,即使我已经添加了opencv路径到我的环境变量)
//index.js
var PythonShell = require('python-shell');
var pyshell = new PythonShell('cam_open.py');
pyshell.on('message', function (message) {
console.log(message);
});
我得到的错误如下:
HIBA@hiba-pc MINGW64 ~/documents/sabah/driver-comp/test
$ node index.js
events.js:137
throw er; // Unhandled 'error' event
^
Error: ImportError: No module named cv2
at PythonShell.parseError (C:\Users\HIBA\documents\sabah\driver-comp\node_modules\p
ython-shell\index.js:184:17)
at terminateIfNeeded (C:\Users\HIBA\documents\sabah\driver-comp\node_modules\python
-shell\index.js:98:28)
at ChildProcess.<anonymous> (C:\Users\HIBA\documents\sabah\driver-comp\node_modules
\python-shell\index.js:89:9)
at ChildProcess.emit (events.js:160:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
----- Python Traceback -----
File "cam_open.py", line 1, in <module>
import cv2
这里的任何人都可以帮助我解决这个问题:)