2012-04-17 134 views
1

我打算執行4幅圖像的全景圖。爲此,我打算處理圖像1,圖像2,圖像3,然後處理3和4,並獲取單應性圖像,然後拼接圖像。調用Cuda內核中的Opencv函數

現在,獲取每個圖像中的SIFT特徵可以並行化。因此,在GPU上使用CUDA時,我打算在將圖像傳遞給內核後,在每個內核中調用Surffeatureextractor和描述符。

現在,我想知道是否有可能在cuda內核中編寫opencv函數?例如,如果我的內核是

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

請讓我知道如何做到這一點,或指示我的某些鏈接,幫助我做到這一點。

+1

OpenCV現在有一個gpu庫,如果你想試試看。 http://opencv.willowgarage.com/wiki/OpenCV_GPU。但是你仍然無法從內核中調用它。 – 2012-04-17 14:41:02

回答

2

你問的是不可能的。如果您瞭解OpenCL體系結構,那很明顯:爲什麼:內核運行在不同的設備上,具有不同的內存,體系結構等,並且所有與它們的通信都是通過緩衝區進行的。如果您還在OpenCL代碼中聲明瞭相同的結構,則可以將描述符作爲結構(更精確地說,指向該結構的指針)傳遞給內核。