Fix binary compatibility of gpu module

pull/526/head
Andrey Kamaev 12 years ago
parent eda2a76ee9
commit 995154d10d
  1. 12
      modules/gpu/include/opencv2/gpu/gpu.hpp
  2. 3
      modules/gpu/src/imgproc.cpp
  3. 12
      modules/gpu/src/pyrlk.cpp

@ -815,6 +815,10 @@ struct CV_EXPORTS CannyBuf
GpuMat st1, st2;
GpuMat unused;
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);
@ -1879,11 +1883,9 @@ private:
vector<GpuMat> prevPyr_;
vector<GpuMat> nextPyr_;
GpuMat vPyr_[2];
vector<GpuMat> unused1;
vector<GpuMat> unused2;
bool unused3;
GpuMat buf_;
vector<GpuMat> buf_;
vector<GpuMat> unused;
bool isDeviceArch11_;
};

@ -45,6 +45,9 @@
using namespace cv;
using namespace cv::gpu;
/*stub for deprecated constructor*/
cv::gpu::CannyBuf::CannyBuf(const GpuMat&, const GpuMat&) { }
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
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
}
else
{
cvtColor(prevImg, buf_, COLOR_BGR2BGRA);
buf_.convertTo(prevPyr_[0], CV_32F);
buf_.resize(1);
cvtColor(nextImg, buf_, COLOR_BGR2BGRA);
buf_.convertTo(nextPyr_[0], CV_32F);
cvtColor(prevImg, buf_[0], COLOR_BGR2BGRA);
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)
@ -237,7 +239,7 @@ void cv::gpu::PyrLKOpticalFlow::releaseMemory()
prevPyr_.clear();
nextPyr_.clear();
buf_.release();
buf_.clear();
uPyr_[0].release();
vPyr_[0].release();

Loading…
Cancel
Save