2012-11-02 3 views
12

私のアプリはバイナリイメージでopencvのcv :: findContoursを使用しています。私は今それをリアルタイムにする必要があります。 GPUImageにはcannyedgeフィルタがありますが、findContoursに関連するものは何も見つかりませんでした。 GPUImageにはfindContoursによく似た何かがありますか?そうでない場合は、誰かに代替案を提案できますか? おかげGPUImage相当のcv :: findContours

+5

ここにはこれが現在ありません。 GPUで作業するのは難しい問題です。私は最近、Sean O'Connellの論文を読んでいました:ftp://ftp.heanet.ie/mirrors/sourceforge/g/gc/gccl/paper_draft.pdfしかし、そこでさえ、彼は巨大なスピードアップを見ませんGPU上の接続されたオブジェクトを決定する際に役立ちます。中途半端な手段として、最初にGPUでエッジ検出を実行してから、CPUバインド処理の結果を読み取ることができます。あなたは少なくともそれから少しスピードアップを得るだろう。 –

+0

私はその道を行くと思います。フィルタを実行した後のrawバッファをcv :: Matに変換するのに最適な方法は何ですか?私はそれをUIImage - > cv :: Matに変換しようとしましたが、時間がかかりすぎます。 – 0xSina

+2

GPUImageRawDataInputを試してください。ここでは、UIImageのCore Graphicsを渡さずに、生のRGBA(またはBGRA、私はバイトオーダーを忘れてしまいます)データをフィードできるはずです。 –

答えて

0

この点で報告された問題は、2015年 https://github.com/BradLarson/GPUImage/issues/2094

にあったその問題の答えはGPUImageは、現時点ではそのような代替手段を提供していないと述べています。したがって、GPUImageのCannyまたはSobelエッジ検出からの出力を、GPUImageフレームワーク以外の輪郭決定操作に供給するのが最も良い推測です。