fixed build under linux
added PyrLKOpticalFlowDense performance test
This commit is contained in:
parent
a10fed8fd1
commit
77f286ada6
@ -3,7 +3,7 @@ if(ANDROID OR IOS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(the_description "GPU-accelerated Computer Vision")
|
set(the_description "GPU-accelerated Computer Vision")
|
||||||
ocv_add_module(gpu opencv_imgproc opencv_calib3d opencv_objdetect)
|
ocv_add_module(gpu opencv_imgproc opencv_calib3d opencv_objdetect opencv_video)
|
||||||
|
|
||||||
ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/cuda")
|
ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/cuda")
|
||||||
|
|
||||||
|
@ -193,4 +193,36 @@ INSTANTIATE_TEST_CASE_P(Video, PyrLKOpticalFlowSparse, testing::Combine
|
|||||||
testing::Values(17, 21)
|
testing::Values(17, 21)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////
|
||||||
|
// PyrLKOpticalFlowDense
|
||||||
|
|
||||||
|
GPU_PERF_TEST_1(PyrLKOpticalFlowDense, cv::gpu::DeviceInfo)
|
||||||
|
{
|
||||||
|
cv::gpu::DeviceInfo devInfo = GetParam();
|
||||||
|
|
||||||
|
cv::gpu::setDevice(devInfo.deviceID());
|
||||||
|
|
||||||
|
cv::Mat frame0_host = readImage("gpu/perf/aloe.jpg", cv::IMREAD_GRAYSCALE);
|
||||||
|
cv::Mat frame1_host = readImage("gpu/perf/aloeR.jpg", cv::IMREAD_GRAYSCALE);
|
||||||
|
|
||||||
|
ASSERT_FALSE(frame0_host.empty());
|
||||||
|
ASSERT_FALSE(frame1_host.empty());
|
||||||
|
|
||||||
|
cv::gpu::GpuMat frame0(frame0_host);
|
||||||
|
cv::gpu::GpuMat frame1(frame1_host);
|
||||||
|
cv::gpu::GpuMat u;
|
||||||
|
cv::gpu::GpuMat v;
|
||||||
|
|
||||||
|
cv::gpu::PyrLKOpticalFlow pyrLK;
|
||||||
|
|
||||||
|
declare.time(10);
|
||||||
|
|
||||||
|
TEST_CYCLE()
|
||||||
|
{
|
||||||
|
pyrLK.dense(frame0, frame1, u, v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_CASE_P(Video, PyrLKOpticalFlowDense, ALL_DEVICES);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -541,8 +541,8 @@ namespace cv { namespace gpu { namespace device
|
|||||||
|
|
||||||
angle = atan2f(Y, X);
|
angle = atan2f(Y, X);
|
||||||
if (angle < 0)
|
if (angle < 0)
|
||||||
angle += 2.0f * CV_PI;
|
angle += 2.0f * CV_PI_F;
|
||||||
angle *= 180.0f / CV_PI;
|
angle *= 180.0f / CV_PI_F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s_X[tid] = X;
|
s_X[tid] = X;
|
||||||
@ -636,8 +636,8 @@ namespace cv { namespace gpu { namespace device
|
|||||||
{
|
{
|
||||||
float kp_dir = atan2f(besty, bestx);
|
float kp_dir = atan2f(besty, bestx);
|
||||||
if (kp_dir < 0)
|
if (kp_dir < 0)
|
||||||
kp_dir += 2.0f * CV_PI;
|
kp_dir += 2.0f * CV_PI_F;
|
||||||
kp_dir *= 180.0f / CV_PI;
|
kp_dir *= 180.0f / CV_PI_F;
|
||||||
|
|
||||||
featureDir[blockIdx.x] = kp_dir;
|
featureDir[blockIdx.x] = kp_dir;
|
||||||
}
|
}
|
||||||
@ -724,7 +724,7 @@ namespace cv { namespace gpu { namespace device
|
|||||||
const float centerX = featureX[blockIdx.x];
|
const float centerX = featureX[blockIdx.x];
|
||||||
const float centerY = featureY[blockIdx.x];
|
const float centerY = featureY[blockIdx.x];
|
||||||
const float size = featureSize[blockIdx.x];
|
const float size = featureSize[blockIdx.x];
|
||||||
const float descriptor_dir = featureDir[blockIdx.x] * (float)(CV_PI / 180);
|
const float descriptor_dir = featureDir[blockIdx.x] * (float)(CV_PI_F / 180.0f);
|
||||||
|
|
||||||
/* The sampling intervals and wavelet sized for selecting an orientation
|
/* The sampling intervals and wavelet sized for selecting an orientation
|
||||||
and building the keypoint descriptor are defined relative to 's' */
|
and building the keypoint descriptor are defined relative to 's' */
|
||||||
@ -817,6 +817,7 @@ namespace cv { namespace gpu { namespace device
|
|||||||
calc_dx_dy(sdx, sdy, featureX, featureY, featureSize, featureDir);
|
calc_dx_dy(sdx, sdy, featureX, featureY, featureSize, featureDir);
|
||||||
__syncthreads();
|
__syncthreads();
|
||||||
|
|
||||||
|
|
||||||
const int tid = threadIdx.y * blockDim.x + threadIdx.x;
|
const int tid = threadIdx.y * blockDim.x + threadIdx.x;
|
||||||
|
|
||||||
if (tid < 25)
|
if (tid < 25)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user