2016-09-18 4 views
1

私は自分のRaspberryPi 2でコンピュータビジョンプロジェクトをやっています。 コンピュータのビジョンは、よく知られているOpenCVライブラリとPythonバインディングによって行われます。 私は、Raspberry PiがiOSアプリで行っていることのライブストリームを見せたいと思います。OpenCV MatをiPhoneに転送する方法

ラズベリーパイで精緻化されている画像は、PythonでNumpy Arrays以下のOpenCVマットです。 反対側のiPhoneアプリにはOpenCVエラボレーション機能がなく、自分のロジック内の画像でしか動作しません。

今、私はこのことを設計していますが、そうする最良の方法を理解できません。

私は、このような問題を分離します:TCPサーバーソケット接続またはWeb APIを何とか新しいイメージをダウンロードするには:情報を転送する

  1. ベストな方法?
  2. 私が送信している情報のフォーマット:多値配列(Matから直接取得)、この場合iPhone上の情報をデコードする方法、またはマットをRaspberry PiのOpenCVで画像に変換する方法それをどこかに保管して送ってください(それは厄介で、私には遅くなります)?

これについてのご意見はありますか?

ありがとうございます。

答えて

1

私はこの問題をこのように解決:

  1. は、符号化された画像のバイト配列を返すcv2.imencode(extension, mat)機能と画像マットをコードしていました。
  2. TCPソケットを使用して、生成されたバイト配列を送信します。

は、具体的に:

変換に使用する関数は、私はTCPクライアントを実装するためにSwiftSocketライブラリを使用iOSでは

def mat_to_byte_array(mat, ext): 
    success, img = cv2.imencode(ext, mat) 
    bytedata = img.tostring() # numpy function used for casting to bytearray 
    return success, bytedata 

です。

これはすべて正常に機能しています。

ありがとうございます。

関連する問題