1

4枚の画像のパノラマを実行するつもりです。このために、画像 1 と 2、2 と 3、次に 3 と 4 を処理し、ホモグラフィを取得してから画像をつなぎ合わせるつもりです。

これで、各画像の SIFT 機能の取得を並列化できます。そこで、GPU で CUDA を使用して、イメージをカーネルに渡した後、各カーネルで Surffeatureextractor と記述子を呼び出すつもりです。

さて、cudaカーネル内にopencv関数を書くことが可能かどうか知りたいですか? たとえば、私のカーネルが

    extract_sift(image, *keypoints, *descriptor)
    {
    //I want to call sift descriptor from an external opencv lib here }

その方法を教えていただくか、それを行うのに役立つ特定のリンクに誘導してください。

4

1 に答える 1

2

あなたが求めることは不可能です。OpenCLアーキテクチャーを理解していれば、その理由は明らかです。カーネルは異なるデバイスで実行され、異なるメモリー、アーキテクチャーなどを持ち、それらとのすべての通信はバッファーを介して行われます。OpenCLコードで同じ構造体を宣言することを条件として、記述子を構造体(より正確には、その構造体へのポインター)としてカーネルに渡すことができます。

于 2012-04-17T06:32:32.890 に答える