moved gpu::cvtColor from imgproc_gpu.cpp to color.cpp
This commit is contained in:
@@ -54,7 +54,7 @@ using namespace cv::gpu;
|
||||
#define FLT_EPSILON 1.192092896e-07F
|
||||
#endif
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
template<typename T> struct ColorChannel {};
|
||||
template<> struct ColorChannel<uchar>
|
||||
@@ -99,7 +99,7 @@ namespace imgproc_krnls
|
||||
|
||||
////////////////// Various 3/4-channel to 3/4-channel RGB transformations /////////////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
template <int SRCCN, int DSTCN, typename T>
|
||||
__global__ void RGB2RGB(const uchar* src_, size_t src_step, uchar* dst_, size_t dst_step, int rows, int cols, int bidx)
|
||||
@@ -125,7 +125,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <typename T, int SRCCN, int DSTCN>
|
||||
void RGB2RGB_caller(const DevMem2D& src, const DevMem2D& dst, int bidx, cudaStream_t stream)
|
||||
@@ -136,7 +136,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::RGB2RGB<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2RGB<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -182,7 +182,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
|
||||
/////////// Transforming 16-bit (565 or 555) RGB to/from 24/32-bit (888[8]) RGB //////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
template <int GREEN_BITS, int DSTCN> struct RGB5x52RGBConverter {};
|
||||
template <int DSTCN> struct RGB5x52RGBConverter<5, DSTCN>
|
||||
@@ -274,7 +274,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <int GREEN_BITS, int DSTCN>
|
||||
void RGB5x52RGB_caller(const DevMem2D& src, const DevMem2D& dst, int bidx, cudaStream_t stream)
|
||||
@@ -285,7 +285,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::RGB5x52RGB<GREEN_BITS, DSTCN><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB5x52RGB<GREEN_BITS, DSTCN><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -313,7 +313,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::RGB2RGB5x5<SRCCN, GREEN_BITS><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2RGB5x5<SRCCN, GREEN_BITS><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -335,7 +335,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
|
||||
///////////////////////////////// Grayscale to Color ////////////////////////////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
template <int DSTCN, typename T>
|
||||
__global__ void Gray2RGB(const uchar* src_, size_t src_step, uchar* dst_, size_t dst_step, int rows, int cols)
|
||||
@@ -389,7 +389,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <typename T, int DSTCN>
|
||||
void Gray2RGB_caller(const DevMem2D& src, const DevMem2D& dst, cudaStream_t stream)
|
||||
@@ -400,7 +400,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::Gray2RGB<DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::Gray2RGB<DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -440,7 +440,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::Gray2RGB5x5<GREEN_BITS><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::Gray2RGB5x5<GREEN_BITS><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -461,7 +461,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
|
||||
///////////////////////////////// Color to Grayscale ////////////////////////////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
#undef R2Y
|
||||
#undef G2Y
|
||||
@@ -543,7 +543,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <typename T, int SRCCN>
|
||||
void RGB2Gray_caller(const DevMem2D& src, const DevMem2D& dst, int bidx, cudaStream_t stream)
|
||||
@@ -554,7 +554,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::RGB2Gray<SRCCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2Gray<SRCCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -594,7 +594,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::RGB5x52Gray<GREEN_BITS><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB5x52Gray<GREEN_BITS><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -615,7 +615,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
|
||||
///////////////////////////////////// RGB <-> YCrCb //////////////////////////////////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
__constant__ float cYCrCbCoeffs_f[5];
|
||||
__constant__ int cYCrCbCoeffs_i[5];
|
||||
@@ -714,7 +714,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <typename T, int SRCCN, int DSTCN>
|
||||
void RGB2YCrCb_caller(const DevMem2D& src, const DevMem2D& dst, int bidx, cudaStream_t stream)
|
||||
@@ -725,7 +725,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::RGB2YCrCb<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2YCrCb<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -741,7 +741,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{RGB2YCrCb_caller<uchar, 4, 3>, RGB2YCrCb_caller<uchar, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cYCrCbCoeffs_i, coeffs, 5 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cYCrCbCoeffs_i, coeffs, 5 * sizeof(int)) );
|
||||
|
||||
RGB2YCrCb_callers[srccn-3][dstcn-3](src, dst, bidx, stream);
|
||||
}
|
||||
@@ -755,7 +755,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{RGB2YCrCb_caller<ushort, 4, 3>, RGB2YCrCb_caller<ushort, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cYCrCbCoeffs_i, coeffs, 5 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cYCrCbCoeffs_i, coeffs, 5 * sizeof(int)) );
|
||||
|
||||
RGB2YCrCb_callers[srccn-3][dstcn-3](src, dst, bidx, stream);
|
||||
}
|
||||
@@ -769,7 +769,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{RGB2YCrCb_caller<float, 4, 3>, RGB2YCrCb_caller<float, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cYCrCbCoeffs_f, coeffs, 5 * sizeof(float)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cYCrCbCoeffs_f, coeffs, 5 * sizeof(float)) );
|
||||
|
||||
RGB2YCrCb_callers[srccn-3][dstcn-3](src, dst, bidx, stream);
|
||||
}
|
||||
@@ -783,7 +783,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::YCrCb2RGB<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::YCrCb2RGB<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -799,7 +799,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{YCrCb2RGB_caller<uchar, 4, 3>, YCrCb2RGB_caller<uchar, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cYCrCbCoeffs_i, coeffs, 4 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cYCrCbCoeffs_i, coeffs, 4 * sizeof(int)) );
|
||||
|
||||
YCrCb2RGB_callers[srccn-3][dstcn-3](src, dst, bidx, stream);
|
||||
}
|
||||
@@ -813,7 +813,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{YCrCb2RGB_caller<ushort, 4, 3>, YCrCb2RGB_caller<ushort, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cYCrCbCoeffs_i, coeffs, 4 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cYCrCbCoeffs_i, coeffs, 4 * sizeof(int)) );
|
||||
|
||||
YCrCb2RGB_callers[srccn-3][dstcn-3](src, dst, bidx, stream);
|
||||
}
|
||||
@@ -827,7 +827,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{YCrCb2RGB_caller<float, 4, 3>, YCrCb2RGB_caller<float, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cYCrCbCoeffs_f, coeffs, 4 * sizeof(float)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cYCrCbCoeffs_f, coeffs, 4 * sizeof(float)) );
|
||||
|
||||
YCrCb2RGB_callers[srccn-3][dstcn-3](src, dst, bidx, stream);
|
||||
}
|
||||
@@ -835,7 +835,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
|
||||
////////////////////////////////////// RGB <-> XYZ ///////////////////////////////////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
__constant__ float cXYZ_D65f[9];
|
||||
__constant__ int cXYZ_D65i[9];
|
||||
@@ -924,7 +924,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <typename T, int SRCCN, int DSTCN>
|
||||
void RGB2XYZ_caller(const DevMem2D& src, const DevMem2D& dst, cudaStream_t stream)
|
||||
@@ -935,7 +935,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::RGB2XYZ<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2XYZ<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -951,7 +951,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{RGB2XYZ_caller<uchar, 4, 3>, RGB2XYZ_caller<uchar, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
|
||||
RGB2XYZ_callers[srccn-3][dstcn-3](src, dst, stream);
|
||||
}
|
||||
@@ -965,7 +965,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{RGB2XYZ_caller<ushort, 4, 3>, RGB2XYZ_caller<ushort, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
|
||||
RGB2XYZ_callers[srccn-3][dstcn-3](src, dst, stream);
|
||||
}
|
||||
@@ -979,7 +979,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{RGB2XYZ_caller<float, 4, 3>, RGB2XYZ_caller<float, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cXYZ_D65f, coeffs, 9 * sizeof(float)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cXYZ_D65f, coeffs, 9 * sizeof(float)) );
|
||||
|
||||
RGB2XYZ_callers[srccn-3][dstcn-3](src, dst, stream);
|
||||
}
|
||||
@@ -993,7 +993,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.x = divUp(src.cols, threads.x);
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
imgproc_krnls::XYZ2RGB<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::XYZ2RGB<SRCCN, DSTCN, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -1009,7 +1009,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{XYZ2RGB_caller<uchar, 4, 3>, XYZ2RGB_caller<uchar, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
|
||||
XYZ2RGB_callers[srccn-3][dstcn-3](src, dst, stream);
|
||||
}
|
||||
@@ -1023,7 +1023,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{XYZ2RGB_caller<ushort, 4, 3>, XYZ2RGB_caller<ushort, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cXYZ_D65i, coeffs, 9 * sizeof(int)) );
|
||||
|
||||
XYZ2RGB_callers[srccn-3][dstcn-3](src, dst, stream);
|
||||
}
|
||||
@@ -1037,7 +1037,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
{XYZ2RGB_caller<float, 4, 3>, XYZ2RGB_caller<float, 4, 4>}
|
||||
};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cXYZ_D65f, coeffs, 9 * sizeof(float)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cXYZ_D65f, coeffs, 9 * sizeof(float)) );
|
||||
|
||||
XYZ2RGB_callers[srccn-3][dstcn-3](src, dst, stream);
|
||||
}
|
||||
@@ -1045,7 +1045,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
|
||||
////////////////////////////////////// RGB <-> HSV ///////////////////////////////////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
__constant__ int cHsvDivTable[256];
|
||||
|
||||
@@ -1222,7 +1222,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <typename T, int SRCCN, int DSTCN>
|
||||
void RGB2HSV_caller(const DevMem2D& src, const DevMem2D& dst, int bidx, int hrange, cudaStream_t stream)
|
||||
@@ -1234,10 +1234,10 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
if (hrange == 180)
|
||||
imgproc_krnls::RGB2HSV<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2HSV<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
else
|
||||
imgproc_krnls::RGB2HSV<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2HSV<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -1288,7 +1288,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
4352, 4334, 4316, 4298, 4281, 4263, 4246, 4229,
|
||||
4212, 4195, 4178, 4161, 4145, 4128, 4112, 4096
|
||||
};
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cHsvDivTable, div_table, sizeof(div_table)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cHsvDivTable, div_table, sizeof(div_table)) );
|
||||
|
||||
RGB2HSV_callers[srccn-3][dstcn-3](src, dst, bidx, hrange, stream);
|
||||
}
|
||||
@@ -1316,10 +1316,10 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
if (hrange == 180)
|
||||
imgproc_krnls::HSV2RGB<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::HSV2RGB<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
else
|
||||
imgproc_krnls::HSV2RGB<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::HSV2RGB<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -1338,7 +1338,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
static const int sector_data[][3] =
|
||||
{{1,3,0}, {1,0,2}, {3,0,1}, {0,2,1}, {0,1,3}, {2,1,0}};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cHsvSectorData, sector_data, sizeof(sector_data)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cHsvSectorData, sector_data, sizeof(sector_data)) );
|
||||
|
||||
HSV2RGB_callers[srccn-3][dstcn-3](src, dst, bidx, hrange, stream);
|
||||
}
|
||||
@@ -1355,7 +1355,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
static const int sector_data[][3] =
|
||||
{{1,3,0}, {1,0,2}, {3,0,1}, {0,2,1}, {0,1,3}, {2,1,0}};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cHsvSectorData, sector_data, sizeof(sector_data)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cHsvSectorData, sector_data, sizeof(sector_data)) );
|
||||
|
||||
HSV2RGB_callers[srccn-3][dstcn-3](src, dst, bidx, hrange, stream);
|
||||
}
|
||||
@@ -1363,7 +1363,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
|
||||
/////////////////////////////////////// RGB <-> HLS ////////////////////////////////////////
|
||||
|
||||
namespace imgproc_krnls
|
||||
namespace color_krnls
|
||||
{
|
||||
template<typename T, int HR> struct RGB2HLSConvertor;
|
||||
template<int HR> struct RGB2HLSConvertor<float, HR>
|
||||
@@ -1534,7 +1534,7 @@ namespace imgproc_krnls
|
||||
}
|
||||
}
|
||||
|
||||
namespace cv { namespace gpu { namespace imgproc
|
||||
namespace cv { namespace gpu { namespace color
|
||||
{
|
||||
template <typename T, int SRCCN, int DSTCN>
|
||||
void RGB2HLS_caller(const DevMem2D& src, const DevMem2D& dst, int bidx, int hrange, cudaStream_t stream)
|
||||
@@ -1546,10 +1546,10 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
if (hrange == 180)
|
||||
imgproc_krnls::RGB2HLS<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2HLS<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
else
|
||||
imgproc_krnls::RGB2HLS<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::RGB2HLS<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -1591,10 +1591,10 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
grid.y = divUp(src.rows, threads.y);
|
||||
|
||||
if (hrange == 180)
|
||||
imgproc_krnls::HLS2RGB<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::HLS2RGB<SRCCN, DSTCN, 180, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
else
|
||||
imgproc_krnls::HLS2RGB<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
color_krnls::HLS2RGB<SRCCN, DSTCN, 255, T><<<grid, threads, 0, stream>>>(src.ptr, src.step,
|
||||
dst.ptr, dst.step, src.rows, src.cols, bidx);
|
||||
|
||||
if (stream == 0)
|
||||
@@ -1613,7 +1613,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
static const int sector_data[][3]=
|
||||
{{1,3,0}, {1,0,2}, {3,0,1}, {0,2,1}, {0,1,3}, {2,1,0}};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cHlsSectorData, sector_data, sizeof(sector_data)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cHlsSectorData, sector_data, sizeof(sector_data)) );
|
||||
|
||||
HLS2RGB_callers[srccn-3][dstcn-3](src, dst, bidx, hrange, stream);
|
||||
}
|
||||
@@ -1630,7 +1630,7 @@ namespace cv { namespace gpu { namespace imgproc
|
||||
static const int sector_data[][3]=
|
||||
{{1,3,0}, {1,0,2}, {3,0,1}, {0,2,1}, {0,1,3}, {2,1,0}};
|
||||
|
||||
cudaSafeCall( cudaMemcpyToSymbol(imgproc_krnls::cHlsSectorData, sector_data, sizeof(sector_data)) );
|
||||
cudaSafeCall( cudaMemcpyToSymbol(color_krnls::cHlsSectorData, sector_data, sizeof(sector_data)) );
|
||||
|
||||
HLS2RGB_callers[srccn-3][dstcn-3](src, dst, bidx, hrange, stream);
|
||||
}
|
||||
|
Reference in New Issue
Block a user