From 01f40cfafc8c036fdd108a9dfddc04c1b037f78c Mon Sep 17 00:00:00 2001 From: Dan <dtmoodie> Date: Tue, 10 Nov 2015 12:29:29 -0500 Subject: [PATCH] Corrected the case where channel == -1 --- .../tutorial_code/gpu/gpu-thrust-interop/Thrust_interop.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/samples/cpp/tutorial_code/gpu/gpu-thrust-interop/Thrust_interop.hpp b/samples/cpp/tutorial_code/gpu/gpu-thrust-interop/Thrust_interop.hpp index 4f44d51ce8..7e880b88eb 100644 --- a/samples/cpp/tutorial_code/gpu/gpu-thrust-interop/Thrust_interop.hpp +++ b/samples/cpp/tutorial_code/gpu/gpu-thrust-interop/Thrust_interop.hpp @@ -42,7 +42,10 @@ template<typename T> thrust::permutation_iterator<thrust::device_ptr<T>, thrust::transform_iterator<step_functor<T>, thrust::counting_iterator<int>>> GpuMatBeginItr(cv::cuda::GpuMat mat, int channel = 0) { if (channel == -1) + { mat = mat.reshape(1); + channel = 0; + } CV_Assert(mat.depth() == cv::DataType<T>::depth); CV_Assert(channel < mat.channels()); return thrust::make_permutation_iterator(thrust::device_pointer_cast(mat.ptr<T>(0) + channel), @@ -59,7 +62,10 @@ template<typename T> thrust::permutation_iterator<thrust::device_ptr<T>, thrust::transform_iterator<step_functor<T>, thrust::counting_iterator<int>>> GpuMatEndItr(cv::cuda::GpuMat mat, int channel = 0) { if (channel == -1) + { mat = mat.reshape(1); + channel = 0; + } CV_Assert(mat.depth() == cv::DataType<T>::depth); CV_Assert(channel < mat.channels()); return thrust::make_permutation_iterator(thrust::device_pointer_cast(mat.ptr<T>(0) + channel),