2017-02-10 8 views
2

私はpythonコードの中で使うためにcythonを使ってC++プロジェクトをラップしたいと思います。メインクラスは他のローカルクラスのインスタンスを持ちます。私は使用されているすべてのクラスのpyxファイルを書くか、メインクラスだけをラップするだけで十分ですか?cythonを使ったC++プロジェクトのラッピング

ありがとうございます!


は編集:ここでは

は私がラップするコードです:他のクラスは、このクラスで使用されているよう https://github.com/vojirt/asms/tree/master/src 私は、colortracker機能をラップしたいと思い、私は、それらをラップする必要がありますかまあ?

+1

私はこの質問がもっと詳細に答える必要があると思いますが、Pythonから使いたいものをラップするだけで実装の詳細をラップする必要はありません。 – DavidW

+0

メインクラスに含まれるクラスがコードで使用される場合はどうなりますか?たとえば、メイン関数がこれらの他のクラスの型の入力を返すか、または入力を取得する場合です。 –

+1

あなたの例を見ると、それらを必要とする関数を使いたい場合は、おそらく 'ColorTracker'、' BBox'と 'cv :: Mat'をラップする必要があります。あなたは、wrapperクラスを使う代わりにnumpy配列をCython内の 'cv :: Mat'に変換することができます。 – DavidW

答えて

1

DavidWのおかげで、問題は解決されました。私はCV ::マットを包むためにこのコードを使用:

cdef extern from "opencv2/core/core.hpp" namespace "cv": 
    cdef cppclass Mat: 
     Mat() except + 
     void create(int, int, int) 
     void* data 

それが唯一の直接colortrackerクラスのパブリック関数で使用されるクラスや関数をラップする必要がありました。

関連する問題