Commit c18d1ee2 authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

SURF kind of works (let's see if the tests pass)

parent 8d5e9522
......@@ -585,7 +585,7 @@ class CV_EXPORTS Image2D
{
public:
Image2D();
Image2D(const UMat &src);
explicit Image2D(const UMat &src);
~Image2D();
void* ptr() const;
......
This diff is collapsed.
......@@ -902,7 +902,7 @@ void SURF::operator()(InputArray _img, InputArray _mask,
bool doDescriptors = _descriptors.needed();
CV_Assert(!_img.empty() && CV_MAT_DEPTH(imgtype) == CV_8U && (imgcn == 1 || imgcn == 3 || imgcn == 4));
CV_Assert(_descriptors.needed() && !useProvidedKeypoints);
CV_Assert(_descriptors.needed() || !useProvidedKeypoints);
if( ocl::useOpenCL() )
{
......
......@@ -54,14 +54,11 @@ protected:
bool setImage(InputArray img, InputArray mask);
// kernel callers declarations
bool calcLayerDetAndTrace(UMat &det, UMat &trace, int octave, int layer_rows);
bool calcLayerDetAndTrace(int octave, int layer_rows);
bool findMaximaInLayer(const UMat &det, const UMat &trace, UMat &maxPosBuffer,
UMat &maxCounter, int counterOffset,
int octave, int layer_rows, int layer_cols);
bool findMaximaInLayer(int counterOffset, int octave, int layer_rows, int layer_cols);
bool interpolateKeypoint(const UMat &det, const UMat &maxPosBuffer, int maxCounter,
UMat &keypoints, UMat &counters, int octave, int layer_rows, int maxFeatures);
bool interpolateKeypoint(int maxCounter, UMat &keypoints, int octave, int layer_rows, int maxFeatures);
bool calcOrientation(UMat &keypoints);
......@@ -75,7 +72,7 @@ protected:
int refcount;
//! max keypoints = min(keypointsRatio * img.size().area(), 65535)
UMat sum, mask1, maskSum, intBuffer;
UMat sum, intBuffer;
UMat det, trace;
UMat maxPosBuffer;
......@@ -87,12 +84,11 @@ protected:
UMat img, counters;
// texture buffers
ocl::Image2D imgTex, sumTex, maskSumTex;
ocl::Image2D imgTex, sumTex;
bool haveImageSupport;
String kerOpts;
int status;
ocl::Kernel kerCalcDetTrace, kerFindMaxima, kerFindMaximaMask, kerInterp;
ocl::Kernel kerUpRight, kerOri, kerCalcDesc64, kerCalcDesc128, kerNormDesc64, kerNormDesc128;
};
/*
......
This diff is collapsed.
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