2017-04-11 88 views
0

我最近開始嘗試OpenCv,尤其是與功能檢測器(例如。SIFT,SURF ...) 現在我開始研究OpenCL,並且我想問是否有OpenCL 「支持」這些功能檢測器。OpenCL支持OpenCV featuredetector/deskriptor

雖然「googleing」我發現這個鏈接1有可能的OpenCL加速功能的問題。但是沒有列出特徵檢測器,只有匹配器。 在github上,我發現了以下代碼2,這表明可以使用SURF。 有人知道在OpenCL中實現了哪些Fetectors/Feskriptors嗎? (也許如何使用它們)

問候Drian

回答

1

的OpenCL不直接支持任何特徵檢測器。

OpenCL是不用於圖像處理的框架,但一個低級API並行運行算法。因此,它支持許多低級函數,如矢量函數,三角函數和其他低級指令,但不支持特定於域的函數,如檢測圖像中的特徵。

的OpenCV採用的OpenCL通過在GPU上運行他們加速某些操作。

基本上,如果你想用一個高的水平,易於使用的庫圖像處理,您使用OpenCV的

如果要實現對的CPU,GPU或其他加速器並行執行自己的算法,可以使用的OpenCL

+0

感謝您的回答。所以,如果我想加快例如。 SURF在GPU或任何其他並行處理器上,我需要嘗試使用opencv函數+在opencl中實現的自寫函數來自己編寫代碼。或者是有可能爲「說opencv's衝浪使用的OpenCL的implemantation加快自己」 – Drian

+0

@Drian:Corect,你將不得不自己來實現算法。你不能只是「複製和粘貼」OpenCV源代碼,因爲算法必須寫成並行執行。並行代碼被稱爲內核。這些內核是用C++語言規範的一個子集編寫的。 – Marco