2017-02-13 65 views
2

私は、ターミナルから直接テストされた、完全に機能するPythonプロジェクトを持っています。brythonを使用してOpenCV Pythonライブラリを操作する方法

しかし、私はJavaScriptラッパーでPythonコードを統合する方法で検索するとき、私は私が& brython使用しているオープンソースのAPIの

http://www.brython.info/ 
http://www.skulpt.org/ 
http://pypyjs.org/ 
http://transcrypt.org/ 
http://stromberg.dnsalias.org/~strombrg/pybrowser/python-browser.html 

のいくつか見つかったが、いくつかの基本的なPythonのコード

を実行することができました

しかし、私のPythonプロジェクト私は

apt-get install python-opencv 
apt-get install python-numpy 
apt-get install python-skimage 
apt-get install cython 
pip install --user imutils 
pip install --user scikit-image 
を使用してOS に直接インストールされているライブラリのいくつかのimport文が含まれています

プロジェクトが

import imutils 
from skimage.filter import threshold_adaptive 
import numpy as np 
import argparse 
import cv2 

私の目的は、コルドバプロジェクトにJavaScriptラッパーを使用して、私のPythonコードを実行できるようにすることですが、これらのライブラリは、デフォルトでは使用できませんから、私はそれらをダウンロードしようとしましたようimport文が含まれています&ローカルパス経由でインポートしていますが、多くのインポートエラーに直面し始めました。& brythonがスローしたコンソールエラーは理解できません。私は、コルディアのAndroid & iOSで動作するPythonを使用して画像処理ソフトウェアを構築しようとしています。

ご協力いただければ幸いです。アドバンス

答えて

2

Brythonで おかげでPythonコードのためのtranspilerある -

それは、Python 3.5の実装にうまく対応しているが、それは、決して、ネイティブコードを実行することができます。つまり、openCVのようなネイティブコードを使用するプロジェクトは、Pythonのソースコードのようなネイティブのx86バイナリを互換性のあるjavascriptオブジェクトに「移行させない」ため、Brythonを実行することはできません。

"skulpt"のような他のアプローチは、Pythonランタイム自体のCコードをjavascriptにコンパイルします。バイナリPythonモジュールをPythonランタイムとともにコンパイルするオプションがあれば、それらを動作させることができます。 (私はSkulptや他の人たちにはこれが可能かどうかを知るためにクライアントサイドのPythonに慣れていません)。

でも、たとえそれが動作しても、openCVは命令SIMDを含む最新のCPUとGPUを使用している可能性が非常に高いです。そのすべてがJavascriptでエミュレートされます(まったく動作していれば)、3または4桁のパフォーマンス低下をもたらします。ファイルI/Oの完全に変更された条件はもちろんです(存在しない場合:コードがない場合)あなたはファイルI/Oの副作用を持っています.HTTPリクエストやHTMLローカルストレージから離れてしまうかもしれません)。

ブラウザ(nacl)やその他のアプローチでネイティブコードを実行するという意味では努力していますが、私はこれらの状態やブラウザ上のcPythonランタイムを認識していません。

何が可能ですか?

画像処理コードのサーバー側で、サーバー上のRPC関数をBrython側のコードから呼び出すことができるバックエンドを構築します。
FlaskやPyramidなどの一般的なPythonフレームワークを使用して、HTTPビューで必要なopenCV機能を公開するだけで済みます。ブラウザとこのサーバー間で画像データと操作メタデータを転送するコードを設定することは難しくありませんBrythonを使って行うこと。

別のサイドノート:

Brythonはあなたがあなたのシステムにインストールした任意のファイルをインポートすることはできません - それは可能性が高いI/Oを実行していない任意の純粋な-のpython3コードで動作しますが、 Brythonの輸入機械は彼らに貴重な情報について

+0

感謝を得ることができるように、ファイルには、Python用のJavaScriptラッパーはネイティブのpythonのほとんどをサポートしていないことを知っているしかし、悲しい、HTTP経由で提供されている特定のパスに配置する必要が機能性。私の目的は、実装作業をオフラインで取得することだったように、AJAX呼び出しを介してサーバー&アクセス上の私のpythonコードをホストするという考えは、私のために良いアイデアではありません。 Pythonの-のJavaScriptラッパーのヘルプを提供する最低限のオンラインチャネルは自分であると、本当に貴重な支援のための 再び感謝 – mohammedirfan655

関連する問題