#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
+#include "opencv2/core/ocl.hpp" // cv::ocl::haveOpenCL
+
#if defined(HAVE_OPENCV_OCL)
#include "opencv2/ocl.hpp"
#define GET_PARAM(k) std::tr1::get< k >(GetParam())
static int oclInit = false;
+static int oclAvailable = false;
PARAM_TEST_CASE(Retina_OCL, bool, int, bool, double, double)
{
double reductionFactor;
double samplingStrength;
- cv::ocl::DevicesInfo infos;
-
virtual void SetUp()
{
colorMode = GET_PARAM(0);
reductionFactor = GET_PARAM(3);
samplingStrength = GET_PARAM(4);
- if(!oclInit)
+ if (!oclInit)
{
- cv::ocl::getOpenCLDevices(infos);
- std::cout << "Device name:" << infos[0]->deviceName << std::endl;
+ if (cv::ocl::haveOpenCL())
+ {
+ try
+ {
+ const cv::ocl::DeviceInfo& dev = cv::ocl::Context::getContext()->getDeviceInfo();
+ std::cout << "Device name:" << dev.deviceName << std::endl;
+ oclAvailable = true;
+ }
+ catch (...)
+ {
+ std::cout << "Device name: N/A" << std::endl;
+ }
+ }
oclInit = true;
}
}
TEST_P(Retina_OCL, Accuracy)
{
+ if (!oclAvailable)
+ {
+ std::cout << "SKIP test" << std::endl;
+ return;
+ }
+
using namespace cv;
Mat input = imread(cvtest::TS::ptr()->get_data_path() + "shared/lena.png", colorMode);
CV_Assert(!input.empty());