Speedup MedianFilter::apply() when calling repeatedly
Speedup MedianFilter::apply(), avoid to newly create the two GpuMat every time calling filter->apply(), which is very time consuming.
This commit is contained in:
parent
7dd3723abe
commit
5fad2a3f24
@ -1068,6 +1068,8 @@ namespace
|
||||
private:
|
||||
int windowSize;
|
||||
int partitions;
|
||||
GpuMat devHist;
|
||||
GpuMat devCoarseHist;
|
||||
};
|
||||
|
||||
MedianFilter::MedianFilter(int srcType, int _windowSize, int _partitions) :
|
||||
@ -1098,10 +1100,13 @@ namespace
|
||||
|
||||
// Note - these are hardcoded in the actual GPU kernel. Do not change these values.
|
||||
int histSize=256, histCoarseSize=8;
|
||||
|
||||
BufferPool pool(_stream);
|
||||
GpuMat devHist = pool.getBuffer(1, src.cols*histSize*partitions,CV_32SC1);
|
||||
GpuMat devCoarseHist = pool.getBuffer(1,src.cols*histCoarseSize*partitions,CV_32SC1);
|
||||
int devHistCols = src.cols*histSize*partitions, devCoarseHistCols = src.cols*histCoarseSize*partitions;
|
||||
if(devHist.empty() || devCoarseHist.empty() || devHist.cols != devHistCols || devCoarseHist.cols != devCoarseHistCols)
|
||||
{
|
||||
BufferPool pool(_stream);
|
||||
devHist = pool.getBuffer(1, devHistCols, CV_32SC1);
|
||||
devCoarseHist = pool.getBuffer(1, devCoarseHistCols, CV_32SC1);
|
||||
}
|
||||
|
||||
devHist.setTo(0, _stream);
|
||||
devCoarseHist.setTo(0, _stream);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user