Commit 0c2ccd3b authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

Merge pull request #3366 from jet47:fix-gpu-cuda-7.0

parents 1692801f 84f33d05
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1413,7 +1413,7 @@ PERF_TEST_P(Sz_Depth_Code, ImgProc_CvtColor, ...@@ -1413,7 +1413,7 @@ PERF_TEST_P(Sz_Depth_Code, ImgProc_CvtColor,
TEST_CYCLE() cv::gpu::cvtColor(d_src, dst, info.code, info.dcn); TEST_CYCLE() cv::gpu::cvtColor(d_src, dst, info.code, info.dcn);
GPU_SANITY_CHECK(dst, 1e-4); GPU_SANITY_CHECK(dst, 1e-2);
} }
else else
{ {
...@@ -1609,7 +1609,7 @@ PERF_TEST_P(Sz_Depth_Cn, ImgProc_ImagePyramidBuild, ...@@ -1609,7 +1609,7 @@ PERF_TEST_P(Sz_Depth_Cn, ImgProc_ImagePyramidBuild,
cv::gpu::GpuMat dst; cv::gpu::GpuMat dst;
d_pyr.getLayer(dst, dstSize); d_pyr.getLayer(dst, dstSize);
GPU_SANITY_CHECK(dst); GPU_SANITY_CHECK(dst, 1e-3);
} }
else else
{ {
...@@ -1646,7 +1646,7 @@ PERF_TEST_P(Sz_Depth_Cn, ImgProc_ImagePyramidGetLayer, ...@@ -1646,7 +1646,7 @@ PERF_TEST_P(Sz_Depth_Cn, ImgProc_ImagePyramidGetLayer,
TEST_CYCLE() d_pyr.getLayer(dst, dstSize); TEST_CYCLE() d_pyr.getLayer(dst, dstSize);
GPU_SANITY_CHECK(dst); GPU_SANITY_CHECK(dst, 1e-3);
} }
else else
{ {
......
...@@ -143,7 +143,7 @@ PERF_TEST_P(ImagePair, Video_CreateOpticalFlowNeedleMap, ...@@ -143,7 +143,7 @@ PERF_TEST_P(ImagePair, Video_CreateOpticalFlowNeedleMap,
TEST_CYCLE() cv::gpu::createOpticalFlowNeedleMap(u, v, vertex, colors); TEST_CYCLE() cv::gpu::createOpticalFlowNeedleMap(u, v, vertex, colors);
GPU_SANITY_CHECK(vertex, 1e-6); GPU_SANITY_CHECK(vertex, 1e-5);
GPU_SANITY_CHECK(colors); GPU_SANITY_CHECK(colors);
} }
else else
......
...@@ -103,16 +103,22 @@ namespace cv { namespace gpu { namespace device ...@@ -103,16 +103,22 @@ namespace cv { namespace gpu { namespace device
{ {
static __device__ __forceinline__ float compute(const uchar* left, const uchar* right) static __device__ __forceinline__ float compute(const uchar* left, const uchar* right)
{ {
return fmin(cdata_weight * ::abs((int)*left - *right), cdata_weight * cmax_data_term); int l = *(left);
int r = *(right);
return fmin(cdata_weight * ::abs(l - r), cdata_weight * cmax_data_term);
} }
}; };
template <> struct DataCostPerPixel<3> template <> struct DataCostPerPixel<3>
{ {
static __device__ __forceinline__ float compute(const uchar* left, const uchar* right) static __device__ __forceinline__ float compute(const uchar* left, const uchar* right)
{ {
float tb = 0.114f * ::abs((int)left[0] - right[0]); uchar3 l = *((const uchar3*)left);
float tg = 0.587f * ::abs((int)left[1] - right[1]); uchar3 r = *((const uchar3*)right);
float tr = 0.299f * ::abs((int)left[2] - right[2]);
float tb = 0.114f * ::abs((int)l.x - r.x);
float tg = 0.587f * ::abs((int)l.y - r.y);
float tr = 0.299f * ::abs((int)l.z - r.z);
return fmin(cdata_weight * (tr + tg + tb), cdata_weight * cmax_data_term); return fmin(cdata_weight * (tr + tg + tb), cdata_weight * cmax_data_term);
} }
......
...@@ -158,7 +158,7 @@ GPU_TEST_P(StereoConstantSpaceBP, Regression) ...@@ -158,7 +158,7 @@ GPU_TEST_P(StereoConstantSpaceBP, Regression)
cv::Mat h_disp(disp); cv::Mat h_disp(disp);
h_disp.convertTo(h_disp, disp_gold.depth()); h_disp.convertTo(h_disp, disp_gold.depth());
EXPECT_MAT_NEAR(disp_gold, h_disp, 1.0); EXPECT_MAT_SIMILAR(disp_gold, h_disp, 1e-4);
} }
INSTANTIATE_TEST_CASE_P(GPU_Calib3D, StereoConstantSpaceBP, ALL_DEVICES); INSTANTIATE_TEST_CASE_P(GPU_Calib3D, StereoConstantSpaceBP, ALL_DEVICES);
......
...@@ -134,8 +134,8 @@ GPU_TEST_P(BruteForceNonLocalMeans, Regression) ...@@ -134,8 +134,8 @@ GPU_TEST_P(BruteForceNonLocalMeans, Regression)
cv::resize(bgr_gold, bgr_gold, cv::Size(256, 256)); cv::resize(bgr_gold, bgr_gold, cv::Size(256, 256));
cv::resize(gray_gold, gray_gold, cv::Size(256, 256)); cv::resize(gray_gold, gray_gold, cv::Size(256, 256));
EXPECT_MAT_NEAR(bgr_gold, dbgr, 1e-4); EXPECT_MAT_NEAR(bgr_gold, dbgr, 1);
EXPECT_MAT_NEAR(gray_gold, dgray, 1e-4); EXPECT_MAT_NEAR(gray_gold, dgray, 1);
} }
INSTANTIATE_TEST_CASE_P(GPU_Denoising, BruteForceNonLocalMeans, ALL_DEVICES); INSTANTIATE_TEST_CASE_P(GPU_Denoising, BruteForceNonLocalMeans, ALL_DEVICES);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment