Commit 6da2573b authored by Andrey Morozov's avatar Andrey Morozov

minor fix

parent 8c77e5fa
...@@ -52,7 +52,7 @@ using namespace cv::gpu::impl; ...@@ -52,7 +52,7 @@ using namespace cv::gpu::impl;
namespace mat_operators namespace mat_operators
{ {
__constant__ double scalar_d[256]; __constant__ double scalar_d[4];
template <typename T> template <typename T>
...@@ -139,7 +139,7 @@ namespace mat_operators ...@@ -139,7 +139,7 @@ namespace mat_operators
if ((x < cols * channels ) && (y < rows)) if ((x < cols * channels ) && (y < rows))
{ {
size_t idx = y * ( step >> shift_and_sizeof<T>::shift ) + x; size_t idx = y * ( step >> shift_and_sizeof<T>::shift ) + x;
mat[idx] = scalar_d[ threadIdx.x]; mat[idx] = scalar_d[ x % channels ];
} }
} }
...@@ -153,7 +153,7 @@ namespace mat_operators ...@@ -153,7 +153,7 @@ namespace mat_operators
if (mask[y * step_mask + x / channels] != 0) if (mask[y * step_mask + x / channels] != 0)
{ {
size_t idx = y * ( step >> shift_and_sizeof<T>::shift ) + x; size_t idx = y * ( step >> shift_and_sizeof<T>::shift ) + x;
mat[idx] = scalar_d[ threadIdx.x ]; mat[idx] = scalar_d[ x % channels ];
} }
} }
...@@ -354,17 +354,7 @@ namespace cv ...@@ -354,17 +354,7 @@ namespace cv
extern "C" void set_to_without_mask(DevMem2D mat, int depth, const double *scalar, int channels, const cudaStream_t & stream) extern "C" void set_to_without_mask(DevMem2D mat, int depth, const double *scalar, int channels, const cudaStream_t & stream)
{ {
double * scalar_vec = new double [256]; cudaSafeCall( cudaMemcpyToSymbol(mat_operators::scalar_d, scalar, sizeof(double) * 4));
int index = 0;
for (int i = 0; i < 256; i++)
{
scalar_vec[i] = scalar[index];
index++;
if (index == channels) index = 0;
}
cudaSafeCall( cudaMemcpyToSymbol(mat_operators::scalar_d, scalar_vec, sizeof(double) * 256));
delete [] scalar_vec;
static SetToFunc_without_mask tab[8] = static SetToFunc_without_mask tab[8] =
{ {
...@@ -389,17 +379,7 @@ namespace cv ...@@ -389,17 +379,7 @@ namespace cv
extern "C" void set_to_with_mask(DevMem2D mat, int depth, const double * scalar, const DevMem2D& mask, int channels, const cudaStream_t & stream) extern "C" void set_to_with_mask(DevMem2D mat, int depth, const double * scalar, const DevMem2D& mask, int channels, const cudaStream_t & stream)
{ {
double * scalar_vec = new double [256]; cudaSafeCall( cudaMemcpyToSymbol(mat_operators::scalar_d, scalar, sizeof(double) * 4));
int index = 0;
for (int i = 0; i < 256; i++)
{
scalar_vec[i] = scalar[index];
index++;
if (index == channels) index = 0;
}
cudaSafeCall( cudaMemcpyToSymbol(mat_operators::scalar_d, scalar_vec, sizeof(double) * 256));
delete [] scalar_vec;
static SetToFunc_with_mask tab[8] = static SetToFunc_with_mask tab[8] =
{ {
......
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