1
基於openCV 3.0和openCL的變化,我似乎無法使用openCL來獲得pyrMeanShiftFiltering的工作。我知道在openCV 2.4.10中支持ocl :: meanShiftFiltering。下面的兩個函數需要花費相同的時間來執行。openCV 3.0,openCL和meanShiftFiltering
我怎麼才能檢查openCV 3.0中哪些函數在openCL下受支持?有什麼建議麼?
#include <opencv2/core/ocl.hpp> //attempting to use openCL
using namespace cv;
using namespace ocl;
void meanShiftOCL()
{
setUseOpenCL(true)
UMat in, out;
imread("./images/img.png").copyTo(in);
pyrMeanShiftFiltering(in, out, 40, 20, 3);
}
//not using openCL
void meanShift()
{
Mat in, out;
imread("./images/img.png").copyTo(in);
pyrMeanShiftFiltering(in, out, 40, 20, 3);
}
感謝您的回覆。 pyrMeanShiftFiltering沒有openCL實現,這真是一件壞事。在版本2.4.10中,可以使用ocl :: meanShiftFiltering。他們爲什麼拿走它的任何理由? \ n 3.0文檔中是否有任何方法可以判斷某個函數是否啓用了openCL? –
我不知道爲什麼發生了 - 可能你可以[創建一個功能請求](https://github.com/Itseez/opencv/issues)甚至添加實現,並提出拉請求。關於文檔 - 我沒有發現任何可能性來確定OpenCL實現是否可用... – avtomaton
正如我所見,** cuda **版本的pyrMeanShiftFiltering存在。還有** OpenCL ** - 收取'pyrUp'和'pyrDown'。 – avtomaton