uchar2 workRect;
uchar2 objSize;
- Level(int idx, const Octave& oct, const float scale, const int w, const int h)
- : octave(idx), relScale(scale / oct.scale), shrScale (relScale / (float)oct.shrinkage)
- {
- workRect.x = round(w / (float)oct.shrinkage);
- workRect.y = round(h / (float)oct.shrinkage);
-
- objSize.x = round(oct.size.x * relScale);
- objSize.y = round(oct.size.y * relScale);
- }
-
+ Level(int idx, const Octave& oct, const float scale, const int w, const int h);
__device Level(){}
};
src.locateROI(whole, offset);
- if (info.supports(WARP_SHUFFLE_FUNCTIONS) && src.cols <= 2048)
+ if (false && info.supports(WARP_SHUFFLE_FUNCTIONS) && src.cols <= 2048)
{
GpuMat srcAlligned;
#include <icf.hpp>
+cv::gpu::device::icf::Level::Level(int idx, const Octave& oct, const float scale, const int w, const int h)
+: octave(idx), relScale(scale / oct.scale), shrScale (relScale / (float)oct.shrinkage)
+{
+ workRect.x = round(w / (float)oct.shrinkage);
+ workRect.y = round(h / (float)oct.shrinkage);
+
+ objSize.x = cv::saturate_cast<uchar>(oct.size.x * relScale);
+ objSize.y = cv::saturate_cast<uchar>(oct.size.y * relScale);
+}
+
namespace cv { namespace gpu { namespace device {
namespace icf {
void fillBins(cv::gpu::PtrStepSzb hogluv, const cv::gpu::PtrStepSzf& nangle,
}
namespace imgproc
{
- void meanShiftFiltering_gpu(const PtrStepSzb& src, PtrStepSzb dst, int sp, int sr, int maxIter, float eps, cudaStream_t stream);
+ void shfl_integral_gpu(PtrStepSzb img, PtrStepSz<unsigned int> integral, cudaStream_t stream);
}
}}}