2016-08-17 33 views
0

python-flaskを使ってWebサーバーをセットアップしたいと思っています。私はチュートリアルフォームchioka.in に従ってみましたが、私はアプリケーションを実行すると初期化しますが、私はlocalhostからアドレスにアクセスしようとするとこのエラーが出ます。python-flaskとopencvを使って蒸気ウェブカメラを生きる方法は?

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
127.0.0.1 - - [18/Aug/2016 02:15:46] "GET/HTTP/1.1" 200 - 
Traceback (most recent call last): 
    File "main.py", line 22, in <module> 
    app.run() 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 843, in run 
    run_simple(host, port, self, **options) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 694, in run_simple 
    inner() 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 659, in inner 
    srv.serve_forever() 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 499, in serve_forever 
    HTTPServer.serve_forever(self) 
    File "/usr/lib/python2.7/SocketServer.py", line 238, in serve_forever 
    self._handle_request_noblock() 
    File "/usr/lib/python2.7/SocketServer.py", line 297, in _handle_request_noblock 
    self.handle_error(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock 
    self.process_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request 
    self.finish_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "/usr/lib/python2.7/SocketServer.py", line 655, in __init__ 
    self.handle() 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 216, in handle 
    rv = BaseHTTPRequestHandler.handle(self) 
    File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle 
    self.handle_one_request() 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 251, in handle_one_request 
    return self.run_wsgi() 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 193, in run_wsgi 
    execute(self.server.app) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 183, in execute 
    for data in application_iter: 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 703, in __next__ 
    return self._next() 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 81, in _iter_encoded 
    for item in iterable: 
    File "main.py", line 12, in gen 
    frame = camera.get_frame() 
    File "/media/moithil/STORAGE/PROJECTS/PROJECTS/webcam Server/camera.py", line 24, in get_frame 
    return jpeg.tobytes() 
AttributeError: 'numpy.ndarray' object has no attribute 'tobytes' 

このjpegをバイトに変換して正しく返しますか?エラーと

コードブロックは、main.pyファイルからcamera.pyファイル

import cv2 

class VideoCamera(object): 
    def __init__(self): 
     self.video = cv2.VideoCapture(0) 


    def __del__(self): 
     self.video.release() 

    def get_frame(self): 
     success, image = self.video.read() 
     ret, jpeg = cv2.imencode('.jpg', image) 
     return jpeg.tobytes() 

から

をしているあなたのnumpyのバージョンがある

@app.route('/') 
def index(): 
    return render_template('index.html') 

def gen(camera): 
    while True: 
     frame = camera.get_frame() 
     yield (b'--frame\r\n' 
       b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n') 

@app.route('/video_feed') 
def video_feed(): 
    return Response(gen(VideoCamera()), 
        mimetype='multipart/x-mixed-replace; boundary=frame') 

答えて

0

プロバbly < 1.9。

リリースノート(http://docs.scipy.org/doc/numpy/release.html)によれば:

ndarray.tobytesとMaskedArray.tobytesバイトとして配列をエクスポートのtoString>の別名として追加されています。これは、Python 3では、strと>バイトが同じでないところで、より一貫しています。

代わりにtostringを使用するか、numpyを最新バージョンにアップグレードしてください。

関連する問題