Commit dea6148a authored by cuda-geek's avatar cuda-geek Committed by OpenCV Buildbot

Merge pull request #526 from taka-no-me:fix_compatibility

parents eda2a76e c17e9ef7
...@@ -815,6 +815,10 @@ struct CV_EXPORTS CannyBuf ...@@ -815,6 +815,10 @@ struct CV_EXPORTS CannyBuf
GpuMat st1, st2; GpuMat st1, st2;
GpuMat unused; GpuMat unused;
Ptr<FilterEngine_GPU> filterDX, filterDY; Ptr<FilterEngine_GPU> filterDX, filterDY;
CannyBuf() {}
explicit CannyBuf(const Size& image_size, int apperture_size = 3) {create(image_size, apperture_size);}
CannyBuf(const GpuMat& dx_, const GpuMat& dy_);
}; };
CV_EXPORTS void Canny(const GpuMat& image, GpuMat& edges, double low_thresh, double high_thresh, int apperture_size = 3, bool L2gradient = false); CV_EXPORTS void Canny(const GpuMat& image, GpuMat& edges, double low_thresh, double high_thresh, int apperture_size = 3, bool L2gradient = false);
...@@ -1879,11 +1883,9 @@ private: ...@@ -1879,11 +1883,9 @@ private:
vector<GpuMat> prevPyr_; vector<GpuMat> prevPyr_;
vector<GpuMat> nextPyr_; vector<GpuMat> nextPyr_;
GpuMat vPyr_[2]; GpuMat vPyr_[2];
vector<GpuMat> unused1; vector<GpuMat> buf_;
vector<GpuMat> unused2; vector<GpuMat> unused;
bool unused3; bool isDeviceArch11_;
GpuMat buf_;
}; };
......
...@@ -45,6 +45,9 @@ ...@@ -45,6 +45,9 @@
using namespace cv; using namespace cv;
using namespace cv::gpu; using namespace cv::gpu;
/*stub for deprecated constructor*/
cv::gpu::CannyBuf::CannyBuf(const GpuMat&, const GpuMat&) { }
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
void cv::gpu::meanShiftFiltering(const GpuMat&, GpuMat&, int, int, TermCriteria, Stream&) { throw_nogpu(); } void cv::gpu::meanShiftFiltering(const GpuMat&, GpuMat&, int, int, TermCriteria, Stream&) { throw_nogpu(); }
......
...@@ -147,11 +147,13 @@ void cv::gpu::PyrLKOpticalFlow::sparse(const GpuMat& prevImg, const GpuMat& next ...@@ -147,11 +147,13 @@ void cv::gpu::PyrLKOpticalFlow::sparse(const GpuMat& prevImg, const GpuMat& next
} }
else else
{ {
cvtColor(prevImg, buf_, COLOR_BGR2BGRA); buf_.resize(1);
buf_.convertTo(prevPyr_[0], CV_32F);
cvtColor(nextImg, buf_, COLOR_BGR2BGRA); cvtColor(prevImg, buf_[0], COLOR_BGR2BGRA);
buf_.convertTo(nextPyr_[0], CV_32F); buf_[0].convertTo(prevPyr_[0], CV_32F);
cvtColor(nextImg, buf_[0], COLOR_BGR2BGRA);
buf_[0].convertTo(nextPyr_[0], CV_32F);
} }
for (int level = 1; level <= maxLevel; ++level) for (int level = 1; level <= maxLevel; ++level)
...@@ -237,7 +239,7 @@ void cv::gpu::PyrLKOpticalFlow::releaseMemory() ...@@ -237,7 +239,7 @@ void cv::gpu::PyrLKOpticalFlow::releaseMemory()
prevPyr_.clear(); prevPyr_.clear();
nextPyr_.clear(); nextPyr_.clear();
buf_.release(); buf_.clear();
uPyr_[0].release(); uPyr_[0].release();
vPyr_[0].release(); vPyr_[0].release();
......
...@@ -102,7 +102,7 @@ namespace cv ...@@ -102,7 +102,7 @@ namespace cv
//this function enable ocl module to use customized cl_context and cl_command_queue //this function enable ocl module to use customized cl_context and cl_command_queue
//getDevice also need to be called before this function //getDevice also need to be called before this function
CV_EXPORTS void setDeviceEx(Info &oclinfo, void *ctx, void *qu, int devnum = 0); CV_EXPORTS void setDeviceEx(Info &oclinfo, void *ctx, void *qu, int devnum = 0);
//////////////////////////////// Error handling //////////////////////// //////////////////////////////// Error handling ////////////////////////
CV_EXPORTS void error(const char *error_string, const char *file, const int line, const char *func); CV_EXPORTS void error(const char *error_string, const char *file, const int line, const char *func);
...@@ -126,21 +126,21 @@ namespace cv ...@@ -126,21 +126,21 @@ namespace cv
}; };
//! Calls a kernel, by string. Pass globalThreads = NULL, and cleanUp = true, to finally clean-up without executing. //! Calls a kernel, by string. Pass globalThreads = NULL, and cleanUp = true, to finally clean-up without executing.
CV_EXPORTS double openCLExecuteKernelInterop(Context *clCxt , CV_EXPORTS double openCLExecuteKernelInterop(Context *clCxt ,
const char **source, string kernelName, const char **source, string kernelName,
size_t globalThreads[3], size_t localThreads[3], size_t globalThreads[3], size_t localThreads[3],
std::vector< std::pair<size_t, const void *> > &args, std::vector< std::pair<size_t, const void *> > &args,
int channels, int depth, const char *build_options, int channels, int depth, const char *build_options,
bool finish = true, bool measureKernelTime = false, bool finish = true, bool measureKernelTime = false,
bool cleanUp = true); bool cleanUp = true);
//! Calls a kernel, by file. Pass globalThreads = NULL, and cleanUp = true, to finally clean-up without executing. //! Calls a kernel, by file. Pass globalThreads = NULL, and cleanUp = true, to finally clean-up without executing.
CV_EXPORTS double openCLExecuteKernelInterop(Context *clCxt , CV_EXPORTS double openCLExecuteKernelInterop(Context *clCxt ,
const char **fileName, const int numFiles, string kernelName, const char **fileName, const int numFiles, string kernelName,
size_t globalThreads[3], size_t localThreads[3], size_t globalThreads[3], size_t localThreads[3],
std::vector< std::pair<size_t, const void *> > &args, std::vector< std::pair<size_t, const void *> > &args,
int channels, int depth, const char *build_options, int channels, int depth, const char *build_options,
bool finish = true, bool measureKernelTime = false, bool finish = true, bool measureKernelTime = false,
bool cleanUp = true); bool cleanUp = true);
class CV_EXPORTS oclMatExpr; class CV_EXPORTS oclMatExpr;
...@@ -487,21 +487,22 @@ namespace cv ...@@ -487,21 +487,22 @@ namespace cv
CV_EXPORTS void bitwise_xor(const oclMat &src1, const Scalar &s, oclMat &dst, const oclMat &mask = oclMat()); CV_EXPORTS void bitwise_xor(const oclMat &src1, const Scalar &s, oclMat &dst, const oclMat &mask = oclMat());
//! Logical operators //! Logical operators
CV_EXPORTS oclMatExpr operator ~ (const oclMat &src); CV_EXPORTS oclMat operator ~ (const oclMat &);
CV_EXPORTS oclMatExpr operator | (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMat operator | (const oclMat &, const oclMat &);
CV_EXPORTS oclMatExpr operator & (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMat operator & (const oclMat &, const oclMat &);
CV_EXPORTS oclMatExpr operator ^ (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMat operator ^ (const oclMat &, const oclMat &);
//! Mathematics operators //! Mathematics operators
CV_EXPORTS oclMatExpr operator + (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMatExpr operator + (const oclMat &src1, const oclMat &src2);
CV_EXPORTS oclMatExpr operator - (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMatExpr operator - (const oclMat &src1, const oclMat &src2);
CV_EXPORTS oclMatExpr operator * (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMatExpr operator * (const oclMat &src1, const oclMat &src2);
CV_EXPORTS oclMatExpr operator / (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMatExpr operator / (const oclMat &src1, const oclMat &src2);
//! computes convolution of two images //! computes convolution of two images
//! support only CV_32FC1 type //! support only CV_32FC1 type
CV_EXPORTS void convolve(const oclMat &image, const oclMat &temp1, oclMat &result); CV_EXPORTS void convolve(const oclMat &image, const oclMat &temp1, oclMat &result);
CV_EXPORTS void cvtColor(const oclMat &src, oclMat &dst, int code , int dcn = 0); CV_EXPORTS void cvtColor(const oclMat &src, oclMat &dst, int code , int dcn = 0);
//////////////////////////////// Filter Engine //////////////////////////////// //////////////////////////////// Filter Engine ////////////////////////////////
......
...@@ -2125,22 +2125,22 @@ void cv::ocl::bitwise_xor(const oclMat &src1, const Scalar &src2, oclMat &dst, c ...@@ -2125,22 +2125,22 @@ void cv::ocl::bitwise_xor(const oclMat &src1, const Scalar &src2, oclMat &dst, c
bitwise_scalar( src1, src2, dst, mask, kernelName, &arithm_bitwise_xor_scalar); bitwise_scalar( src1, src2, dst, mask, kernelName, &arithm_bitwise_xor_scalar);
} }
oclMatExpr cv::ocl::operator ~ (const oclMat &src) oclMat cv::ocl::operator ~ (const oclMat &src)
{ {
return oclMatExpr(src, oclMat(), MAT_NOT); return oclMatExpr(src, oclMat(), MAT_NOT);
} }
oclMatExpr cv::ocl::operator | (const oclMat &src1, const oclMat &src2) oclMat cv::ocl::operator | (const oclMat &src1, const oclMat &src2)
{ {
return oclMatExpr(src1, src2, MAT_OR); return oclMatExpr(src1, src2, MAT_OR);
} }
oclMatExpr cv::ocl::operator & (const oclMat &src1, const oclMat &src2) oclMat cv::ocl::operator & (const oclMat &src1, const oclMat &src2)
{ {
return oclMatExpr(src1, src2, MAT_AND); return oclMatExpr(src1, src2, MAT_AND);
} }
oclMatExpr cv::ocl::operator ^ (const oclMat &src1, const oclMat &src2) oclMat cv::ocl::operator ^ (const oclMat &src1, const oclMat &src2)
{ {
return oclMatExpr(src1, src2, MAT_XOR); return oclMatExpr(src1, src2, MAT_XOR);
} }
......
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