remove redundant OPENCL_DIR flag
remove as much warnings as possible use enum instead of MACRO for ocl.hpp add command line parser in accuracy test and perf test some bug fix for arthim functions
This commit is contained in:
@@ -73,22 +73,53 @@ void print_info()
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
std::string workdir;
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
TS::ptr()->init("ocl");
|
||||
InitGoogleTest(&argc, argv);
|
||||
const char *keys =
|
||||
"{ h | help | false | print help message }"
|
||||
"{ w | workdir | ../../../samples/c/| set working directory }"
|
||||
"{ t | type | gpu | set device type:cpu or gpu}"
|
||||
"{ p | platform | 0 | set platform id }"
|
||||
"{ d | device | 0 | set device id }";
|
||||
|
||||
CommandLineParser cmd(argc, argv, keys);
|
||||
if (cmd.get<bool>("help"))
|
||||
{
|
||||
cout << "Avaible options besides goole test option:" << endl;
|
||||
cmd.printParams();
|
||||
return 0;
|
||||
}
|
||||
workdir = cmd.get<string>("workdir");
|
||||
string type = cmd.get<string>("type");
|
||||
unsigned int pid = cmd.get<unsigned int>("platform");
|
||||
int device = cmd.get<int>("device");
|
||||
|
||||
print_info();
|
||||
|
||||
std::vector<cv::ocl::Info> oclinfo;
|
||||
int devnums = getDevice(oclinfo);
|
||||
if(devnums < 1)
|
||||
int flag = CVCL_DEVICE_TYPE_GPU;
|
||||
if(type == "cpu")
|
||||
{
|
||||
std::cout << "no device found\n";
|
||||
flag = CVCL_DEVICE_TYPE_CPU;
|
||||
}
|
||||
std::vector<cv::ocl::Info> oclinfo;
|
||||
int devnums = getDevice(oclinfo, flag);
|
||||
if(devnums <= device || device < 0)
|
||||
{
|
||||
std::cout << "device invalid\n";
|
||||
return -1;
|
||||
}
|
||||
//setDevice(oclinfo[1]);
|
||||
if(pid >= oclinfo.size())
|
||||
{
|
||||
std::cout << "platform invalid\n";
|
||||
return -1;
|
||||
}
|
||||
if(pid != 0 || device != 0)
|
||||
{
|
||||
setDevice(oclinfo[pid], device);
|
||||
}
|
||||
cout << "Device type:" << type << endl << "Device name:" << oclinfo[pid].DeviceName[device] << endl;
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
|
||||
|
@@ -67,7 +67,5 @@
|
||||
#include "interpolation.hpp"
|
||||
//#include "add_test_info.h"
|
||||
|
||||
#define OPENCV_DEFAULT_OPENCL_DEVICE CVCL_DEVICE_TYPE_GPU
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -133,10 +133,9 @@ PARAM_TEST_CASE(ArithmTestBase, MatType, bool)
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
|
||||
#ifdef RANDOMROI
|
||||
//randomize ROI
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
roicols = rng.uniform(1, mat1.cols);
|
||||
roirows = rng.uniform(1, mat1.rows);
|
||||
src1x = rng.uniform(0, mat1.cols - roicols);
|
||||
@@ -234,7 +233,7 @@ TEST_P(Exp, Mat)
|
||||
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 2, s);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -855,7 +854,7 @@ TEST_P(MinMaxLoc, MAT)
|
||||
cv::Point minLoc_, maxLoc_;
|
||||
cv::ocl::minMaxLoc(gmat1, &minVal_, &maxVal_, &minLoc_, &maxLoc_, cv::ocl::oclMat());
|
||||
|
||||
double error0, error1, minlocVal, minlocVal_, maxlocVal, maxlocVal_;
|
||||
double error0 = 0., error1 = 0., minlocVal = 0., minlocVal_ = 0., maxlocVal = 0., maxlocVal_ = 0.;
|
||||
if(depth == 0)
|
||||
{
|
||||
minlocVal = mat1_roi.at<unsigned char>(minLoc);
|
||||
@@ -975,7 +974,7 @@ TEST_P(MinMaxLoc, MASK)
|
||||
cv::Point minLoc_, maxLoc_;
|
||||
cv::ocl::minMaxLoc(gmat1, &minVal_, &maxVal_, &minLoc_, &maxLoc_, gmask);
|
||||
|
||||
double error0, error1, minlocVal, minlocVal_, maxlocVal, maxlocVal_;
|
||||
double error0 = 0., error1 = 0., minlocVal = 0., minlocVal_ = 0., maxlocVal = 0., maxlocVal_ = 0.;
|
||||
if(minLoc_.x == -1 || minLoc_.y == -1 || maxLoc_.x == -1 || maxLoc_.y == -1) continue;
|
||||
if(depth == 0)
|
||||
{
|
||||
|
@@ -45,16 +45,11 @@
|
||||
|
||||
#include "precomp.hpp"
|
||||
#ifdef HAVE_OPENCL
|
||||
#ifdef WIN32
|
||||
#define FILTER_IMAGE "C:/Users/Public/Pictures/Sample Pictures/Penguins.jpg"
|
||||
#else
|
||||
#define FILTER_IMAGE "/Users/Test/Valve_original.PNG" // user need to specify a valid image path
|
||||
#endif
|
||||
#define SHOW_RESULT 0
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// Canny
|
||||
|
||||
extern std::string workdir;
|
||||
IMPLEMENT_PARAM_CLASS(AppertureSize, int);
|
||||
IMPLEMENT_PARAM_CLASS(L2gradient, bool);
|
||||
|
||||
@@ -76,7 +71,7 @@ PARAM_TEST_CASE(Canny, AppertureSize, L2gradient)
|
||||
|
||||
TEST_P(Canny, Accuracy)
|
||||
{
|
||||
cv::Mat img = readImage(FILTER_IMAGE, cv::IMREAD_GRAYSCALE);
|
||||
cv::Mat img = readImage(workdir + "fruits.jpg", cv::IMREAD_GRAYSCALE);
|
||||
ASSERT_FALSE(img.empty());
|
||||
|
||||
double low_thresh = 50.0;
|
||||
@@ -110,4 +105,4 @@ TEST_P(Canny, Accuracy)
|
||||
INSTANTIATE_TEST_CASE_P(GPU_ImgProc, Canny, testing::Combine(
|
||||
testing::Values(AppertureSize(3), AppertureSize(5)),
|
||||
testing::Values(L2gradient(false), L2gradient(true))));
|
||||
#endif
|
||||
#endif
|
@@ -52,7 +52,7 @@ using namespace cvtest;
|
||||
using namespace testing;
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
|
||||
extern string workdir;
|
||||
struct getRect
|
||||
{
|
||||
Rect operator ()(const CvAvgComp &e) const
|
||||
@@ -75,14 +75,11 @@ PARAM_TEST_CASE(HaarTestBase, int, int)
|
||||
{
|
||||
scale = 1.0;
|
||||
index = 0;
|
||||
string cascadeName = "../../../data/haarcascades/haarcascade_frontalface_alt.xml";
|
||||
string cascadeName = workdir + "../../data/haarcascades/haarcascade_frontalface_alt.xml";
|
||||
|
||||
if( (!cascade.load( cascadeName )) || (!cpucascade.load(cascadeName)))
|
||||
{
|
||||
cout << "ERROR: Could not load classifier cascade" << endl;
|
||||
cout << "Usage: facedetect [--cascade=<cascade_path>]\n"
|
||||
" [--scale[=<image scale>\n"
|
||||
" [filename|camera_index]\n" << endl ;
|
||||
return;
|
||||
}
|
||||
//int devnums = getDevice(oclinfo);
|
||||
@@ -99,17 +96,17 @@ struct Haar : HaarTestBase {};
|
||||
|
||||
TEST_F(Haar, FaceDetect)
|
||||
{
|
||||
string imgName = "../../../samples/c/lena.jpg";
|
||||
string imgName = workdir + "lena.jpg";
|
||||
Mat img = imread( imgName, 1 );
|
||||
|
||||
if(img.empty())
|
||||
{
|
||||
std::cout << "Couldn't read test" << index << ".jpg" << std::endl;
|
||||
std::cout << "Couldn't read " << imgName << std::endl;
|
||||
return ;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
double t = 0;
|
||||
//int i = 0;
|
||||
//double t = 0;
|
||||
vector<Rect> faces, oclfaces;
|
||||
|
||||
const static Scalar colors[] = { CV_RGB(0, 0, 255),
|
||||
|
@@ -48,7 +48,7 @@
|
||||
using namespace std;
|
||||
#ifdef HAVE_OPENCL
|
||||
|
||||
|
||||
extern string workdir;
|
||||
PARAM_TEST_CASE(HOG, cv::Size, int)
|
||||
{
|
||||
cv::Size winSize;
|
||||
@@ -63,7 +63,7 @@ PARAM_TEST_CASE(HOG, cv::Size, int)
|
||||
TEST_P(HOG, GetDescriptors)
|
||||
{
|
||||
// Load image
|
||||
cv::Mat img_rgb = readImage("../../../samples/gpu/road.png");
|
||||
cv::Mat img_rgb = readImage(workdir + "lena.jpg");
|
||||
ASSERT_FALSE(img_rgb.empty());
|
||||
|
||||
// Convert image
|
||||
@@ -120,7 +120,7 @@ bool match_rect(cv::Rect r1, cv::Rect r2, int threshold)
|
||||
TEST_P(HOG, Detect)
|
||||
{
|
||||
// Load image
|
||||
cv::Mat img_rgb = readImage("../../../samples/gpu/road.png");
|
||||
cv::Mat img_rgb = readImage(workdir + "lena.jpg");
|
||||
ASSERT_FALSE(img_rgb.empty());
|
||||
|
||||
// Convert image
|
||||
|
@@ -1008,7 +1008,7 @@ TEST_P(Remap, Mat)
|
||||
int bordertype[] = {cv::BORDER_CONSTANT, cv::BORDER_REPLICATE/*,BORDER_REFLECT,BORDER_WRAP,BORDER_REFLECT_101*/};
|
||||
const char *borderstr[] = {"BORDER_CONSTANT", "BORDER_REPLICATE"/*, "BORDER_REFLECT","BORDER_WRAP","BORDER_REFLECT_101"*/};
|
||||
// for(int i = 0; i < sizeof(bordertype)/sizeof(int); i++)
|
||||
for(int j = 0; j < 100; j++)
|
||||
for(int j = 0; j < LOOP_TIMES; j++)
|
||||
{
|
||||
random_roi();
|
||||
cv::remap(src_roi, dst_roi, map1_roi, map2_roi, interpolation, bordertype[0], val);
|
||||
@@ -1017,7 +1017,7 @@ TEST_P(Remap, Mat)
|
||||
gdst.download(cpu_dst);
|
||||
|
||||
char sss[1024];
|
||||
sprintf(sss, "src_roicols=%d,src_roirows=%d,dst_roicols=%d,dst_roirows=%d,src1x =%d,src1y=%d,dstx=%d,dsty=%d", src_roicols, src_roirows, dst_roicols, dst_roirows, srcx, srcy, dstx, dsty);
|
||||
sprintf(sss, "src_roicols=%d,src_roirows=%d,dst_roicols=%d,dst_roirows=%d,src1x =%d,src1y=%d,dstx=%d,dsty=%d bordertype=%s", src_roicols, src_roirows, dst_roicols, dst_roirows, srcx, srcy, dstx, dsty, borderstr[0]);
|
||||
|
||||
|
||||
if(interpolation == 0)
|
||||
@@ -1371,7 +1371,9 @@ TEST_P(meanShiftFiltering, Mat)
|
||||
gdst.download(cpu_gdst);
|
||||
|
||||
char sss[1024];
|
||||
char warning[300] = "Warning: If the selected device doesn't support double, a deviation will exist.\nIf the accuracy is acceptable, please ignore it.\n";
|
||||
sprintf(sss, "roicols=%d,roirows=%d,srcx=%d,srcy=%d,dstx=%d,dsty=%d\n", roicols, roirows, srcx, srcy, dstx, dsty);
|
||||
strcat(sss, warning);
|
||||
EXPECT_MAT_NEAR(dst, cpu_gdst, 0.0, sss);
|
||||
|
||||
}
|
||||
@@ -1397,7 +1399,9 @@ TEST_P(meanShiftProc, Mat)
|
||||
gdstCoor.download(cpu_gdstCoor);
|
||||
|
||||
char sss[1024];
|
||||
char warning[300] = "Warning: If the selected device doesn't support double, a deviation will exist.\nIf the accuracy is acceptable, please ignore it.\n";
|
||||
sprintf(sss, "roicols=%d,roirows=%d,srcx=%d,srcy=%d,dstx=%d,dsty=%d\n", roicols, roirows, srcx, srcy, dstx, dsty);
|
||||
strcat(sss, warning);
|
||||
EXPECT_MAT_NEAR(dst, cpu_gdst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dstCoor, cpu_gdstCoor, 0.0, sss);
|
||||
}
|
||||
@@ -1740,7 +1744,7 @@ INSTANTIATE_TEST_CASE_P(Imgproc, meanShiftProc, Combine(
|
||||
));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Imgproc, Remap, Combine(
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4),
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4),
|
||||
Values(CV_32FC1, CV_16SC2, CV_32FC2), Values(-1, CV_32FC1),
|
||||
Values((int)cv::INTER_NEAREST, (int)cv::INTER_LINEAR),
|
||||
Values((int)cv::BORDER_CONSTANT)));
|
||||
@@ -1751,7 +1755,7 @@ INSTANTIATE_TEST_CASE_P(histTestBase, calcHist, Combine(
|
||||
ONE_TYPE(CV_32SC1) //no use
|
||||
));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ConvolveTestBase, Convolve, Combine(
|
||||
Values(CV_32FC1, CV_32FC1),
|
||||
Values(false))); // Values(false) is the reserved parameter
|
||||
//INSTANTIATE_TEST_CASE_P(ConvolveTestBase, Convolve, Combine(
|
||||
// Values(CV_32FC1, CV_32FC1),
|
||||
// Values(false))); // Values(false) is the reserved parameter
|
||||
#endif // HAVE_OPENCL
|
||||
|
@@ -44,7 +44,7 @@
|
||||
|
||||
|
||||
#include "precomp.hpp"
|
||||
#define PERF_TEST 0
|
||||
//#define PERF_TEST 0
|
||||
#ifdef HAVE_OPENCL
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// MatchTemplate
|
||||
@@ -157,18 +157,18 @@ TEST_P(MatchTemplate32F, Accuracy)
|
||||
#endif // PERF_TEST
|
||||
}
|
||||
|
||||
//INSTANTIATE_TEST_CASE_P(GPU_ImgProc, MatchTemplate8U,
|
||||
// testing::Combine(
|
||||
// MTEMP_SIZES,
|
||||
// testing::Values(TemplateSize(cv::Size(5, 5)), TemplateSize(cv::Size(16, 16))/*, TemplateSize(cv::Size(30, 30))*/),
|
||||
// testing::Values(Channels(1), Channels(3), Channels(4)),
|
||||
// ALL_TEMPLATE_METHODS
|
||||
// )
|
||||
// );
|
||||
//
|
||||
//INSTANTIATE_TEST_CASE_P(GPU_ImgProc, MatchTemplate32F, testing::Combine(
|
||||
// MTEMP_SIZES,
|
||||
// testing::Values(TemplateSize(cv::Size(5, 5)), TemplateSize(cv::Size(16, 16))/*, TemplateSize(cv::Size(30, 30))*/),
|
||||
// testing::Values(Channels(1), Channels(3), Channels(4)),
|
||||
// testing::Values(TemplateMethod(cv::TM_SQDIFF), TemplateMethod(cv::TM_CCORR))));
|
||||
INSTANTIATE_TEST_CASE_P(GPU_ImgProc, MatchTemplate8U,
|
||||
testing::Combine(
|
||||
MTEMP_SIZES,
|
||||
testing::Values(TemplateSize(cv::Size(5, 5)), TemplateSize(cv::Size(16, 16))/*, TemplateSize(cv::Size(30, 30))*/),
|
||||
testing::Values(Channels(1), Channels(3), Channels(4)),
|
||||
ALL_TEMPLATE_METHODS
|
||||
)
|
||||
);
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(GPU_ImgProc, MatchTemplate32F, testing::Combine(
|
||||
MTEMP_SIZES,
|
||||
testing::Values(TemplateSize(cv::Size(5, 5)), TemplateSize(cv::Size(16, 16))/*, TemplateSize(cv::Size(30, 30))*/),
|
||||
testing::Values(Channels(1), Channels(3), Channels(4)),
|
||||
testing::Values(TemplateMethod(cv::TM_SQDIFF), TemplateMethod(cv::TM_CCORR))));
|
||||
#endif
|
||||
|
@@ -54,7 +54,7 @@ using namespace std;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// BroxOpticalFlow
|
||||
|
||||
extern string workdir;
|
||||
#define BROX_OPTICAL_FLOW_DUMP_FILE "opticalflow/brox_optical_flow.bin"
|
||||
#define BROX_OPTICAL_FLOW_DUMP_FILE_CC20 "opticalflow/brox_optical_flow_cc20.bin"
|
||||
|
||||
@@ -78,10 +78,10 @@ PARAM_TEST_CASE(Sparse, bool, bool)
|
||||
|
||||
TEST_P(Sparse, Mat)
|
||||
{
|
||||
cv::Mat frame0 = readImage("../../../samples/gpu/rubberwhale1.png", useGray ? cv::IMREAD_GRAYSCALE : cv::IMREAD_COLOR);
|
||||
cv::Mat frame0 = readImage(workdir + "../gpu/rubberwhale1.png", useGray ? cv::IMREAD_GRAYSCALE : cv::IMREAD_COLOR);
|
||||
ASSERT_FALSE(frame0.empty());
|
||||
|
||||
cv::Mat frame1 = readImage("../../../samples/gpu/rubberwhale2.png", useGray ? cv::IMREAD_GRAYSCALE : cv::IMREAD_COLOR);
|
||||
cv::Mat frame1 = readImage(workdir + "../gpu/rubberwhale2.png", useGray ? cv::IMREAD_GRAYSCALE : cv::IMREAD_COLOR);
|
||||
ASSERT_FALSE(frame1.empty());
|
||||
|
||||
cv::Mat gray_frame;
|
||||
|
Reference in New Issue
Block a user