This commit is contained in:
Ilya Lavrenov 2014-03-03 19:37:47 +04:00
parent af8aa8a2fa
commit 099ea91823
30 changed files with 78 additions and 78 deletions

View File

@ -126,7 +126,7 @@ PERF_TEST_P(PointsNum, DISABLED_SolvePnPRansac, testing::Values(4, 3*9, 7*13))
Mat tvec; Mat tvec;
#ifdef HAVE_TBB #ifdef HAVE_TBB
// limit concurrency to get determenistic result // limit concurrency to get deterministic result
cv::Ptr<tbb::task_scheduler_init> one_thread = new tbb::task_scheduler_init(1); cv::Ptr<tbb::task_scheduler_init> one_thread = new tbb::task_scheduler_init(1);
#endif #endif

View File

@ -271,7 +271,7 @@ TEST(DISABLED_Calib3d_SolvePnPRansac, concurrency)
Mat tvec1, tvec2; Mat tvec1, tvec2;
{ {
// limit concurrency to get determenistic result // limit concurrency to get deterministic result
cv::theRNG().state = 20121010; cv::theRNG().state = 20121010;
cv::Ptr<tbb::task_scheduler_init> one_thread = new tbb::task_scheduler_init(1); cv::Ptr<tbb::task_scheduler_init> one_thread = new tbb::task_scheduler_init(1);
solvePnPRansac(object, image, camera_mat, dist_coef, rvec1, tvec1); solvePnPRansac(object, image, camera_mat, dist_coef, rvec1, tvec1);

View File

@ -362,14 +362,14 @@ bool ImageLogPolProjection::_initLogPolarCortexSampling(const double reductionFa
//std::cout<<"ImageLogPolProjection::Starting cortex projection"<<std::endl; //std::cout<<"ImageLogPolProjection::Starting cortex projection"<<std::endl;
// compute transformation, get theta and Radius in reagrd of the output sampled pixel // compute transformation, get theta and Radius in reagrd of the output sampled pixel
double diagonalLenght=sqrt((double)(_outputNBcolumns*_outputNBcolumns+_outputNBrows*_outputNBrows)); double diagonalLength=sqrt((double)(_outputNBcolumns*_outputNBcolumns+_outputNBrows*_outputNBrows));
for (unsigned int radiusIndex=0;radiusIndex<_outputNBcolumns;++radiusIndex) for (unsigned int radiusIndex=0;radiusIndex<_outputNBcolumns;++radiusIndex)
for(unsigned int orientationIndex=0;orientationIndex<_outputNBrows;++orientationIndex) for(unsigned int orientationIndex=0;orientationIndex<_outputNBrows;++orientationIndex)
{ {
double x=1.0+sinh(radiusAxis[radiusIndex])*cos(orientationAxis[orientationIndex]); double x=1.0+sinh(radiusAxis[radiusIndex])*cos(orientationAxis[orientationIndex]);
double y=sinh(radiusAxis[radiusIndex])*sin(orientationAxis[orientationIndex]); double y=sinh(radiusAxis[radiusIndex])*sin(orientationAxis[orientationIndex]);
// get the input picture coordinate // get the input picture coordinate
double R=diagonalLenght*sqrt(x*x+y*y)/(5.0+sqrt(x*x+y*y)); double R=diagonalLength*sqrt(x*x+y*y)/(5.0+sqrt(x*x+y*y));
double theta=atan2(y,x); double theta=atan2(y,x);
// convert input polar coord into cartesian/C compatble coordinate // convert input polar coord into cartesian/C compatble coordinate
unsigned int columnIndex=(unsigned int)(cos(theta)*R)+halfInputColumns; unsigned int columnIndex=(unsigned int)(cos(theta)*R)+halfInputColumns;

View File

@ -229,7 +229,7 @@ Mat subspaceReconstruct(InputArray _W, InputArray _mean, InputArray _src)
string error_message = format("Wrong mean shape for the given eigenvector matrix. Expected %d, but was %d.", W.cols, mean.total()); string error_message = format("Wrong mean shape for the given eigenvector matrix. Expected %d, but was %d.", W.cols, mean.total());
CV_Error(CV_StsBadArg, error_message); CV_Error(CV_StsBadArg, error_message);
} }
// initalize temporary matrices // initialize temporary matrices
Mat X, Y; Mat X, Y;
// copy data & make sure we are using the correct type // copy data & make sure we are using the correct type
src.convertTo(Y, W.type()); src.convertTo(Y, W.type());

View File

@ -357,27 +357,27 @@ namespace cv
for (unsigned int i=0;i<this->size();++i) for (unsigned int i=0;i<this->size();++i)
{ {
double curentValue=(double)*(bufferPTR++); double currentValue=(double)*(bufferPTR++);
// updating "closest to the high threshold" pixel value // updating "closest to the high threshold" pixel value
double highValueTest=maxThreshold-curentValue; double highValueTest=maxThreshold-currentValue;
if (highValueTest>0) if (highValueTest>0)
{ {
if (deltaH>highValueTest) if (deltaH>highValueTest)
{ {
deltaH=highValueTest; deltaH=highValueTest;
updatedHighValue=curentValue; updatedHighValue=currentValue;
} }
} }
// updating "closest to the low threshold" pixel value // updating "closest to the low threshold" pixel value
double lowValueTest=curentValue-minThreshold; double lowValueTest=currentValue-minThreshold;
if (lowValueTest>0) if (lowValueTest>0)
{ {
if (deltaL>lowValueTest) if (deltaL>lowValueTest)
{ {
deltaL=lowValueTest; deltaL=lowValueTest;
updatedLowValue=curentValue; updatedLowValue=currentValue;
} }
} }
} }

View File

@ -105,7 +105,7 @@ CVAPI(void) cvResetImageROI( IplImage* image );
/* Retrieves image ROI */ /* Retrieves image ROI */
CVAPI(CvRect) cvGetImageROI( const IplImage* image ); CVAPI(CvRect) cvGetImageROI( const IplImage* image );
/* Allocates and initalizes CvMat header */ /* Allocates and initializes CvMat header */
CVAPI(CvMat*) cvCreateMatHeader( int rows, int cols, int type ); CVAPI(CvMat*) cvCreateMatHeader( int rows, int cols, int type );
#define CV_AUTOSTEP 0x7fffffff #define CV_AUTOSTEP 0x7fffffff

View File

@ -2897,7 +2897,7 @@ cvCreateImage( CvSize size, int depth, int channels )
} }
// initalize IplImage header, allocated by the user // initialize IplImage header, allocated by the user
CV_IMPL IplImage* CV_IMPL IplImage*
cvInitImageHeader( IplImage * image, CvSize size, int depth, cvInitImageHeader( IplImage * image, CvSize size, int depth,
int channels, int origin, int align ) int channels, int origin, int align )

View File

@ -11,9 +11,9 @@ FAST
---- ----
Detects corners using the FAST algorithm Detects corners using the FAST algorithm
.. ocv:function:: void FAST( InputArray image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSupression=true ) .. ocv:function:: void FAST( InputArray image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSuppression=true )
.. ocv:function:: void FASTX( InputArray image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSupression, int type ) .. ocv:function:: void FASTX( InputArray image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSuppression, int type )
:param image: grayscale image where keypoints (corners) are detected. :param image: grayscale image where keypoints (corners) are detected.
@ -21,7 +21,7 @@ Detects corners using the FAST algorithm
:param threshold: threshold on difference between intensity of the central pixel and pixels of a circle around this pixel. :param threshold: threshold on difference between intensity of the central pixel and pixels of a circle around this pixel.
:param nonmaxSupression: if true, non-maximum suppression is applied to detected corners (keypoints). :param nonmaxSuppression: if true, non-maximum suppression is applied to detected corners (keypoints).
:param type: one of the three neighborhoods as defined in the paper: ``FastFeatureDetector::TYPE_9_16``, ``FastFeatureDetector::TYPE_7_12``, ``FastFeatureDetector::TYPE_5_8`` :param type: one of the three neighborhoods as defined in the paper: ``FastFeatureDetector::TYPE_9_16``, ``FastFeatureDetector::TYPE_7_12``, ``FastFeatureDetector::TYPE_5_8``

View File

@ -566,10 +566,10 @@ protected:
//! detects corners using FAST algorithm by E. Rosten //! detects corners using FAST algorithm by E. Rosten
CV_EXPORTS void FAST( InputArray image, CV_OUT vector<KeyPoint>& keypoints, CV_EXPORTS void FAST( InputArray image, CV_OUT vector<KeyPoint>& keypoints,
int threshold, bool nonmaxSupression=true ); int threshold, bool nonmaxSuppression=true );
CV_EXPORTS void FASTX( InputArray image, CV_OUT vector<KeyPoint>& keypoints, CV_EXPORTS void FASTX( InputArray image, CV_OUT vector<KeyPoint>& keypoints,
int threshold, bool nonmaxSupression, int type ); int threshold, bool nonmaxSuppression, int type );
class CV_EXPORTS_W FastFeatureDetector : public FeatureDetector class CV_EXPORTS_W FastFeatureDetector : public FeatureDetector
{ {

View File

@ -128,7 +128,7 @@ public:
Point2f center; Point2f center;
Scalar ellipse; // 3 elements a, b, c: ax^2+2bxy+cy^2=1 Scalar ellipse; // 3 elements a, b, c: ax^2+2bxy+cy^2=1
Size_<float> axes; // half lenght of elipse axes Size_<float> axes; // half length of ellipse axes
Size_<float> boundingBox; // half sizes of bounding box which sides are parallel to the coordinate axes Size_<float> boundingBox; // half sizes of bounding box which sides are parallel to the coordinate axes
}; };

View File

@ -24,7 +24,7 @@ Class used for corner detection using the FAST algorithm. ::
// all features have same size // all features have same size
static const int FEATURE_SIZE = 7; static const int FEATURE_SIZE = 7;
explicit FAST_GPU(int threshold, bool nonmaxSupression = true, explicit FAST_GPU(int threshold, bool nonmaxSuppression = true,
double keypointsRatio = 0.05); double keypointsRatio = 0.05);
void operator ()(const GpuMat& image, const GpuMat& mask, GpuMat& keypoints); void operator ()(const GpuMat& image, const GpuMat& mask, GpuMat& keypoints);
@ -39,7 +39,7 @@ Class used for corner detection using the FAST algorithm. ::
void release(); void release();
bool nonmaxSupression; bool nonmaxSuppression;
int threshold; int threshold;
@ -61,11 +61,11 @@ gpu::FAST_GPU::FAST_GPU
------------------------------------- -------------------------------------
Constructor. Constructor.
.. ocv:function:: gpu::FAST_GPU::FAST_GPU(int threshold, bool nonmaxSupression = true, double keypointsRatio = 0.05) .. ocv:function:: gpu::FAST_GPU::FAST_GPU(int threshold, bool nonmaxSuppression = true, double keypointsRatio = 0.05)
:param threshold: Threshold on difference between intensity of the central pixel and pixels on a circle around this pixel. :param threshold: Threshold on difference between intensity of the central pixel and pixels on a circle around this pixel.
:param nonmaxSupression: If it is true, non-maximum suppression is applied to detected corners (keypoints). :param nonmaxSuppression: If it is true, non-maximum suppression is applied to detected corners (keypoints).
:param keypointsRatio: Inner buffer size for keypoints store is determined as (keypointsRatio * image_width * image_height). :param keypointsRatio: Inner buffer size for keypoints store is determined as (keypointsRatio * image_width * image_height).
@ -115,7 +115,7 @@ Releases inner buffer memory.
gpu::FAST_GPU::calcKeyPointsLocation gpu::FAST_GPU::calcKeyPointsLocation
------------------------------------- -------------------------------------
Find keypoints and compute it's response if ``nonmaxSupression`` is true. Find keypoints and compute it's response if ``nonmaxSuppression`` is true.
.. ocv:function:: int gpu::FAST_GPU::calcKeyPointsLocation(const GpuMat& image, const GpuMat& mask) .. ocv:function:: int gpu::FAST_GPU::calcKeyPointsLocation(const GpuMat& image, const GpuMat& mask)
@ -185,7 +185,7 @@ Class for extracting ORB features and descriptors from an image. ::
int descriptorSize() const; int descriptorSize() const;
void setParams(size_t n_features, const ORB::CommonParams& detector_params); void setParams(size_t n_features, const ORB::CommonParams& detector_params);
void setFastParams(int threshold, bool nonmaxSupression = true); void setFastParams(int threshold, bool nonmaxSuppression = true);
void release(); void release();

View File

@ -1580,7 +1580,7 @@ public:
// all features have same size // all features have same size
static const int FEATURE_SIZE = 7; static const int FEATURE_SIZE = 7;
explicit FAST_GPU(int threshold, bool nonmaxSupression = true, double keypointsRatio = 0.05); explicit FAST_GPU(int threshold, bool nonmaxSuppression = true, double keypointsRatio = 0.05);
//! finds the keypoints using FAST detector //! finds the keypoints using FAST detector
//! supports only CV_8UC1 images //! supports only CV_8UC1 images
@ -1596,19 +1596,19 @@ public:
//! release temporary buffer's memory //! release temporary buffer's memory
void release(); void release();
bool nonmaxSupression; bool nonmaxSuppression;
int threshold; int threshold;
//! max keypoints = keypointsRatio * img.size().area() //! max keypoints = keypointsRatio * img.size().area()
double keypointsRatio; double keypointsRatio;
//! find keypoints and compute it's response if nonmaxSupression is true //! find keypoints and compute it's response if nonmaxSuppression is true
//! return count of detected keypoints //! return count of detected keypoints
int calcKeyPointsLocation(const GpuMat& image, const GpuMat& mask); int calcKeyPointsLocation(const GpuMat& image, const GpuMat& mask);
//! get final array of keypoints //! get final array of keypoints
//! performs nonmax supression if needed //! performs nonmax suppression if needed
//! return final count of keypoints //! return final count of keypoints
int getKeyPoints(GpuMat& keypoints); int getKeyPoints(GpuMat& keypoints);
@ -1670,10 +1670,10 @@ public:
//! returns the descriptor size in bytes //! returns the descriptor size in bytes
inline int descriptorSize() const { return kBytes; } inline int descriptorSize() const { return kBytes; }
inline void setFastParams(int threshold, bool nonmaxSupression = true) inline void setFastParams(int threshold, bool nonmaxSuppression = true)
{ {
fastDetector_.threshold = threshold; fastDetector_.threshold = threshold;
fastDetector_.nonmaxSupression = nonmaxSupression; fastDetector_.nonmaxSuppression = nonmaxSuppression;
} }
//! release temporary buffer's memory //! release temporary buffer's memory

View File

@ -49,9 +49,9 @@ using namespace perf;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// FAST // FAST
DEF_PARAM_TEST(Image_Threshold_NonMaxSupression, string, int, bool); DEF_PARAM_TEST(Image_Threshold_NonMaxSuppression, string, int, bool);
PERF_TEST_P(Image_Threshold_NonMaxSupression, Features2D_FAST, PERF_TEST_P(Image_Threshold_NonMaxSuppression, Features2D_FAST,
Combine(Values<string>("gpu/perf/aloe.png"), Combine(Values<string>("gpu/perf/aloe.png"),
Values(20), Values(20),
Bool())) Bool()))

View File

@ -1746,7 +1746,7 @@ PERF_TEST_P(Image, ImgProc_HoughLinesP,
const float rho = 1.0f; const float rho = 1.0f;
const float theta = static_cast<float>(CV_PI / 180.0); const float theta = static_cast<float>(CV_PI / 180.0);
const int threshold = 100; const int threshold = 100;
const int minLineLenght = 50; const int minLineLength = 50;
const int maxLineGap = 5; const int maxLineGap = 5;
const cv::Mat image = cv::imread(fileName, cv::IMREAD_GRAYSCALE); const cv::Mat image = cv::imread(fileName, cv::IMREAD_GRAYSCALE);
@ -1761,7 +1761,7 @@ PERF_TEST_P(Image, ImgProc_HoughLinesP,
cv::gpu::GpuMat d_lines; cv::gpu::GpuMat d_lines;
cv::gpu::HoughLinesBuf d_buf; cv::gpu::HoughLinesBuf d_buf;
TEST_CYCLE() cv::gpu::HoughLinesP(d_mask, d_lines, d_buf, rho, theta, minLineLenght, maxLineGap); TEST_CYCLE() cv::gpu::HoughLinesP(d_mask, d_lines, d_buf, rho, theta, minLineLength, maxLineGap);
cv::Mat gpu_lines(d_lines); cv::Mat gpu_lines(d_lines);
cv::Vec4i* begin = gpu_lines.ptr<cv::Vec4i>(); cv::Vec4i* begin = gpu_lines.ptr<cv::Vec4i>();
@ -1773,7 +1773,7 @@ PERF_TEST_P(Image, ImgProc_HoughLinesP,
{ {
std::vector<cv::Vec4i> cpu_lines; std::vector<cv::Vec4i> cpu_lines;
TEST_CYCLE() cv::HoughLinesP(mask, cpu_lines, rho, theta, threshold, minLineLenght, maxLineGap); TEST_CYCLE() cv::HoughLinesP(mask, cpu_lines, rho, theta, threshold, minLineLength, maxLineGap);
SANITY_CHECK(cpu_lines); SANITY_CHECK(cpu_lines);
} }

View File

@ -74,7 +74,7 @@ PERF_TEST_P(Image, HoughLinesP, testing::Values(std::string("im1_1280x800.jpg"))
const float rho = 1.f; const float rho = 1.f;
const float theta = 1.f; const float theta = 1.f;
const int threshold = 40; const int threshold = 40;
const int minLineLenght = 20; const int minLineLength = 20;
const int maxLineGap = 5; const int maxLineGap = 5;
cv::Mat image = cv::imread(fileName, cv::IMREAD_GRAYSCALE); cv::Mat image = cv::imread(fileName, cv::IMREAD_GRAYSCALE);
@ -85,11 +85,11 @@ PERF_TEST_P(Image, HoughLinesP, testing::Values(std::string("im1_1280x800.jpg"))
cv::gpu::GpuMat d_lines; cv::gpu::GpuMat d_lines;
cv::gpu::HoughLinesBuf d_buf; cv::gpu::HoughLinesBuf d_buf;
cv::gpu::HoughLinesP(d_image, d_lines, d_buf, rho, theta, minLineLenght, maxLineGap); cv::gpu::HoughLinesP(d_image, d_lines, d_buf, rho, theta, minLineLength, maxLineGap);
TEST_CYCLE() TEST_CYCLE()
{ {
cv::gpu::HoughLinesP(d_image, d_lines, d_buf, rho, theta, minLineLenght, maxLineGap); cv::gpu::HoughLinesP(d_image, d_lines, d_buf, rho, theta, minLineLength, maxLineGap);
} }
} }
else else
@ -98,11 +98,11 @@ PERF_TEST_P(Image, HoughLinesP, testing::Values(std::string("im1_1280x800.jpg"))
cv::Canny(image, mask, 50, 100); cv::Canny(image, mask, 50, 100);
std::vector<cv::Vec4i> lines; std::vector<cv::Vec4i> lines;
cv::HoughLinesP(mask, lines, rho, theta, threshold, minLineLenght, maxLineGap); cv::HoughLinesP(mask, lines, rho, theta, threshold, minLineLength, maxLineGap);
TEST_CYCLE() TEST_CYCLE()
{ {
cv::HoughLinesP(mask, lines, rho, theta, threshold, minLineLenght, maxLineGap); cv::HoughLinesP(mask, lines, rho, theta, threshold, minLineLength, maxLineGap);
} }
} }

View File

@ -318,9 +318,9 @@ namespace cv { namespace gpu { namespace device
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// nonmaxSupression // nonmaxSuppression
__global__ void nonmaxSupression(const short2* kpLoc, int count, const PtrStepSzi scoreMat, short2* locFinal, float* responseFinal) __global__ void nonmaxSuppression(const short2* kpLoc, int count, const PtrStepSzi scoreMat, short2* locFinal, float* responseFinal)
{ {
#if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 110) #if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 110)
@ -356,7 +356,7 @@ namespace cv { namespace gpu { namespace device
#endif #endif
} }
int nonmaxSupression_gpu(const short2* kpLoc, int count, PtrStepSzi score, short2* loc, float* response) int nonmaxSuppression_gpu(const short2* kpLoc, int count, PtrStepSzi score, short2* loc, float* response)
{ {
void* counter_ptr; void* counter_ptr;
cudaSafeCall( cudaGetSymbolAddress(&counter_ptr, g_counter) ); cudaSafeCall( cudaGetSymbolAddress(&counter_ptr, g_counter) );
@ -368,7 +368,7 @@ namespace cv { namespace gpu { namespace device
cudaSafeCall( cudaMemset(counter_ptr, 0, sizeof(unsigned int)) ); cudaSafeCall( cudaMemset(counter_ptr, 0, sizeof(unsigned int)) );
nonmaxSupression<<<grid, block>>>(kpLoc, count, score, loc, response); nonmaxSuppression<<<grid, block>>>(kpLoc, count, score, loc, response);
cudaSafeCall( cudaGetLastError() ); cudaSafeCall( cudaGetLastError() );
cudaSafeCall( cudaDeviceSynchronize() ); cudaSafeCall( cudaDeviceSynchronize() );

View File

@ -59,8 +59,8 @@ int cv::gpu::FAST_GPU::getKeyPoints(GpuMat&) { throw_nogpu(); return 0; }
#else /* !defined (HAVE_CUDA) */ #else /* !defined (HAVE_CUDA) */
cv::gpu::FAST_GPU::FAST_GPU(int _threshold, bool _nonmaxSupression, double _keypointsRatio) : cv::gpu::FAST_GPU::FAST_GPU(int _threshold, bool _nonmaxSuppression, double _keypointsRatio) :
nonmaxSupression(_nonmaxSupression), threshold(_threshold), keypointsRatio(_keypointsRatio), count_(0) nonmaxSuppression(_nonmaxSuppression), threshold(_threshold), keypointsRatio(_keypointsRatio), count_(0)
{ {
} }
@ -114,7 +114,7 @@ namespace cv { namespace gpu { namespace device
namespace fast namespace fast
{ {
int calcKeypoints_gpu(PtrStepSzb img, PtrStepSzb mask, short2* kpLoc, int maxKeypoints, PtrStepSzi score, int threshold); int calcKeypoints_gpu(PtrStepSzb img, PtrStepSzb mask, short2* kpLoc, int maxKeypoints, PtrStepSzi score, int threshold);
int nonmaxSupression_gpu(const short2* kpLoc, int count, PtrStepSzi score, short2* loc, float* response); int nonmaxSuppression_gpu(const short2* kpLoc, int count, PtrStepSzi score, short2* loc, float* response);
} }
}}} }}}
@ -129,13 +129,13 @@ int cv::gpu::FAST_GPU::calcKeyPointsLocation(const GpuMat& img, const GpuMat& ma
ensureSizeIsEnough(1, maxKeypoints, CV_16SC2, kpLoc_); ensureSizeIsEnough(1, maxKeypoints, CV_16SC2, kpLoc_);
if (nonmaxSupression) if (nonmaxSuppression)
{ {
ensureSizeIsEnough(img.size(), CV_32SC1, score_); ensureSizeIsEnough(img.size(), CV_32SC1, score_);
score_.setTo(Scalar::all(0)); score_.setTo(Scalar::all(0));
} }
count_ = calcKeypoints_gpu(img, mask, kpLoc_.ptr<short2>(), maxKeypoints, nonmaxSupression ? score_ : PtrStepSzi(), threshold); count_ = calcKeypoints_gpu(img, mask, kpLoc_.ptr<short2>(), maxKeypoints, nonmaxSuppression ? score_ : PtrStepSzi(), threshold);
count_ = std::min(count_, maxKeypoints); count_ = std::min(count_, maxKeypoints);
return count_; return count_;
@ -150,8 +150,8 @@ int cv::gpu::FAST_GPU::getKeyPoints(GpuMat& keypoints)
ensureSizeIsEnough(ROWS_COUNT, count_, CV_32FC1, keypoints); ensureSizeIsEnough(ROWS_COUNT, count_, CV_32FC1, keypoints);
if (nonmaxSupression) if (nonmaxSuppression)
return nonmaxSupression_gpu(kpLoc_.ptr<short2>(), count_, score_, keypoints.ptr<short2>(LOCATION_ROW), keypoints.ptr<float>(RESPONSE_ROW)); return nonmaxSuppression_gpu(kpLoc_.ptr<short2>(), count_, score_, keypoints.ptr<short2>(LOCATION_ROW), keypoints.ptr<float>(RESPONSE_ROW));
GpuMat locRow(1, count_, kpLoc_.type(), keypoints.ptr(0)); GpuMat locRow(1, count_, kpLoc_.type(), keypoints.ptr(0));
kpLoc_.colRange(0, count_).copyTo(locRow); kpLoc_.colRange(0, count_).copyTo(locRow);

View File

@ -52,20 +52,20 @@ using namespace cvtest;
namespace namespace
{ {
IMPLEMENT_PARAM_CLASS(FAST_Threshold, int) IMPLEMENT_PARAM_CLASS(FAST_Threshold, int)
IMPLEMENT_PARAM_CLASS(FAST_NonmaxSupression, bool) IMPLEMENT_PARAM_CLASS(FAST_NonmaxSuppression, bool)
} }
PARAM_TEST_CASE(FAST, cv::gpu::DeviceInfo, FAST_Threshold, FAST_NonmaxSupression) PARAM_TEST_CASE(FAST, cv::gpu::DeviceInfo, FAST_Threshold, FAST_NonmaxSuppression)
{ {
cv::gpu::DeviceInfo devInfo; cv::gpu::DeviceInfo devInfo;
int threshold; int threshold;
bool nonmaxSupression; bool nonmaxSuppression;
virtual void SetUp() virtual void SetUp()
{ {
devInfo = GET_PARAM(0); devInfo = GET_PARAM(0);
threshold = GET_PARAM(1); threshold = GET_PARAM(1);
nonmaxSupression = GET_PARAM(2); nonmaxSuppression = GET_PARAM(2);
cv::gpu::setDevice(devInfo.deviceID()); cv::gpu::setDevice(devInfo.deviceID());
} }
@ -77,7 +77,7 @@ GPU_TEST_P(FAST, Accuracy)
ASSERT_FALSE(image.empty()); ASSERT_FALSE(image.empty());
cv::gpu::FAST_GPU fast(threshold); cv::gpu::FAST_GPU fast(threshold);
fast.nonmaxSupression = nonmaxSupression; fast.nonmaxSuppression = nonmaxSuppression;
if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS)) if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS))
{ {
@ -97,7 +97,7 @@ GPU_TEST_P(FAST, Accuracy)
fast(loadMat(image), cv::gpu::GpuMat(), keypoints); fast(loadMat(image), cv::gpu::GpuMat(), keypoints);
std::vector<cv::KeyPoint> keypoints_gold; std::vector<cv::KeyPoint> keypoints_gold;
cv::FAST(image, keypoints_gold, threshold, nonmaxSupression); cv::FAST(image, keypoints_gold, threshold, nonmaxSuppression);
ASSERT_KEYPOINTS_EQ(keypoints_gold, keypoints); ASSERT_KEYPOINTS_EQ(keypoints_gold, keypoints);
} }
@ -106,7 +106,7 @@ GPU_TEST_P(FAST, Accuracy)
INSTANTIATE_TEST_CASE_P(GPU_Features2D, FAST, testing::Combine( INSTANTIATE_TEST_CASE_P(GPU_Features2D, FAST, testing::Combine(
ALL_DEVICES, ALL_DEVICES,
testing::Values(FAST_Threshold(25), FAST_Threshold(50)), testing::Values(FAST_Threshold(25), FAST_Threshold(50)),
testing::Values(FAST_NonmaxSupression(false), FAST_NonmaxSupression(true)))); testing::Values(FAST_NonmaxSuppression(false), FAST_NonmaxSuppression(true))));
///////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////
// ORB // ORB

View File

@ -1536,7 +1536,7 @@ CvWindow::CvWindow(QString name, int arg2)
setWindowTitle(name); setWindowTitle(name);
setObjectName(name); setObjectName(name);
setFocus( Qt::PopupFocusReason ); //#1695 arrow keys are not recieved without the explicit focus setFocus( Qt::PopupFocusReason ); //#1695 arrow keys are not received without the explicit focus
resize(400, 300); resize(400, 300);
setMinimumSize(1, 1); setMinimumSize(1, 1);

View File

@ -569,7 +569,7 @@ static int icvCreateTrackbar (const char* trackbar_name,
//pad size maxvalue in pixel //pad size maxvalue in pixel
Point qdSize; Point qdSize;
char valueinchar[strlen(trackbar_name)+1 +1 +1+nbDigit+1];//lenght+\n +space +(+nbDigit+) char valueinchar[strlen(trackbar_name)+1 +1 +1+nbDigit+1];//length+\n +space +(+nbDigit+)
sprintf(valueinchar, "%s (%d)",trackbar_name, trackbar->maxval); sprintf(valueinchar, "%s (%d)",trackbar_name, trackbar->maxval);
SInt16 baseline; SInt16 baseline;
CFStringRef text = CFStringCreateWithCString(NULL,valueinchar,kCFStringEncodingASCII); CFStringRef text = CFStringCreateWithCString(NULL,valueinchar,kCFStringEncodingASCII);

View File

@ -101,7 +101,7 @@ Harris edge detector.
.. ocv:pyfunction:: cv2.cornerHarris(src, blockSize, ksize, k[, dst[, borderType]]) -> dst .. ocv:pyfunction:: cv2.cornerHarris(src, blockSize, ksize, k[, dst[, borderType]]) -> dst
.. ocv:cfunction:: void cvCornerHarris( const CvArr* image, CvArr* harris_responce, int block_size, int aperture_size=3, double k=0.04 ) .. ocv:cfunction:: void cvCornerHarris( const CvArr* image, CvArr* harris_response, int block_size, int aperture_size=3, double k=0.04 )
.. ocv:pyoldfunction:: cv.CornerHarris(image, harris_dst, blockSize, aperture_size=3, k=0.04) -> None .. ocv:pyoldfunction:: cv.CornerHarris(image, harris_dst, blockSize, aperture_size=3, k=0.04) -> None

View File

@ -304,7 +304,7 @@ CVAPI(int) cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_c
int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE), int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
CvPoint offset CV_DEFAULT(cvPoint(0,0))); CvPoint offset CV_DEFAULT(cvPoint(0,0)));
/* Initalizes contour retrieving process. /* Initializes contour retrieving process.
Calls cvStartFindContours. Calls cvStartFindContours.
Calls cvFindNextContour until null pointer is returned Calls cvFindNextContour until null pointer is returned
or some other condition becomes true. or some other condition becomes true.
@ -334,7 +334,7 @@ CVAPI(CvSeq*) cvApproxChains( CvSeq* src_seq, CvMemStorage* storage,
int minimal_perimeter CV_DEFAULT(0), int minimal_perimeter CV_DEFAULT(0),
int recursive CV_DEFAULT(0)); int recursive CV_DEFAULT(0));
/* Initalizes Freeman chain reader. /* Initializes Freeman chain reader.
The reader is used to iteratively get coordinates of all the chain points. The reader is used to iteratively get coordinates of all the chain points.
If the Freeman codes should be read as is, a simple sequence reader should be used */ If the Freeman codes should be read as is, a simple sequence reader should be used */
CVAPI(void) cvStartReadChainPoints( CvChain* chain, CvChainPtReader* reader ); CVAPI(void) cvStartReadChainPoints( CvChain* chain, CvChainPtReader* reader );
@ -573,7 +573,7 @@ CVAPI(void) cvCornerMinEigenVal( const CvArr* image, CvArr* eigenval,
/* Harris corner detector: /* Harris corner detector:
Calculates det(M) - k*(trace(M)^2), where M is 2x2 gradient covariation matrix for each pixel */ Calculates det(M) - k*(trace(M)^2), where M is 2x2 gradient covariation matrix for each pixel */
CVAPI(void) cvCornerHarris( const CvArr* image, CvArr* harris_responce, CVAPI(void) cvCornerHarris( const CvArr* image, CvArr* harris_response,
int block_size, int aperture_size CV_DEFAULT(3), int block_size, int aperture_size CV_DEFAULT(3),
double k CV_DEFAULT(0.04) ); double k CV_DEFAULT(0.04) );

View File

@ -220,7 +220,7 @@ CvSeq* icvApproximateChainTC89( CvChain* chain, int header_size,
current = temp.next; current = temp.next;
/* Pass 2. /* Pass 2.
Performs non-maxima supression */ Performs non-maxima suppression */
do do
{ {
int k2 = current->k >> 1; int k2 = current->k >> 1;

View File

@ -171,7 +171,7 @@ void cv::Canny( InputArray _src, OutputArray _dst,
#define CANNY_PUSH(d) *(d) = uchar(2), *stack_top++ = (d) #define CANNY_PUSH(d) *(d) = uchar(2), *stack_top++ = (d)
#define CANNY_POP(d) (d) = *--stack_top #define CANNY_POP(d) (d) = *--stack_top
// calculate magnitude and angle of gradient, perform non-maxima supression. // calculate magnitude and angle of gradient, perform non-maxima suppression.
// fill the map with one of the following values: // fill the map with one of the following values:
// 0 - the pixel might belong to an edge // 0 - the pixel might belong to an edge
// 1 - the pixel can not belong to an edge // 1 - the pixel can not belong to an edge

View File

@ -217,7 +217,7 @@ __kernel void gpuRunHaarClassifierCascadePacked(
(SumL[M0(n0.x)+lcl_off] - SumL[M1(n0.x)+lcl_off] - SumL[M0(n0.y)+lcl_off] + SumL[M1(n0.y)+lcl_off]) * as_float(n1.z) + (SumL[M0(n0.x)+lcl_off] - SumL[M1(n0.x)+lcl_off] - SumL[M0(n0.y)+lcl_off] + SumL[M1(n0.y)+lcl_off]) * as_float(n1.z) +
(SumL[M0(n0.z)+lcl_off] - SumL[M1(n0.z)+lcl_off] - SumL[M0(n0.w)+lcl_off] + SumL[M1(n0.w)+lcl_off]) * as_float(n1.w) + (SumL[M0(n0.z)+lcl_off] - SumL[M1(n0.z)+lcl_off] - SumL[M0(n0.w)+lcl_off] + SumL[M1(n0.w)+lcl_off]) * as_float(n1.w) +
(SumL[M0(n1.x)+lcl_off] - SumL[M1(n1.x)+lcl_off] - SumL[M0(n1.y)+lcl_off] + SumL[M1(n1.y)+lcl_off]) * as_float(n2.x); (SumL[M0(n1.x)+lcl_off] - SumL[M1(n1.x)+lcl_off] - SumL[M0(n1.y)+lcl_off] + SumL[M1(n1.y)+lcl_off]) * as_float(n2.x);
//accumulate stage responce //accumulate stage response
stage_sum += (classsum >= nodethreshold) ? as_float(n2.w) : as_float(n2.z); stage_sum += (classsum >= nodethreshold) ? as_float(n2.w) : as_float(n2.z);
} }
result = (stage_sum >= stagethreshold); result = (stage_sum >= stagethreshold);

View File

@ -372,7 +372,7 @@ public:
// processing time (in this case there should be possibility to interrupt such a function // processing time (in this case there should be possibility to interrupt such a function
FAIL_HANG=-13, FAIL_HANG=-13,
// unexpected responce on passing bad arguments to the tested function // unexpected response on passing bad arguments to the tested function
// (the function crashed, proceed succesfully (while it should not), or returned // (the function crashed, proceed succesfully (while it should not), or returned
// error code that is different from what is expected) // error code that is different from what is expected)
FAIL_BAD_ARG_CHECK=-14, FAIL_BAD_ARG_CHECK=-14,

View File

@ -397,7 +397,7 @@ This 3D Widget defines a cone. ::
{ {
public: public:
//! create default cone, oriented along x-axis with center of its base located at origin //! create default cone, oriented along x-axis with center of its base located at origin
WCone(double lenght, double radius, int resolution = 6.0, const Color &color = Color::white()); WCone(double length, double radius, int resolution = 6.0, const Color &color = Color::white());
//! creates repositioned cone //! creates repositioned cone
WCone(double radius, const Point3d& center, const Point3d& tip, int resolution = 6.0, const Color &color = Color::white()); WCone(double radius, const Point3d& center, const Point3d& tip, int resolution = 6.0, const Color &color = Color::white());

View File

@ -214,12 +214,12 @@ public class ManagerActivity extends Activity
} }
}); });
mPackageChangeReciever = new BroadcastReceiver() { mPackageChangeReceiver = new BroadcastReceiver() {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
Log.d("OpenCVManager/Reciever", "Bradcast message " + intent.getAction() + " reciever"); Log.d("OpenCVManager/Receiver", "Broadcast message " + intent.getAction() + " receiver");
Log.d("OpenCVManager/Reciever", "Filling package list on broadcast message"); Log.d("OpenCVManager/Receiver", "Filling package list on broadcast message");
if (!bindService(new Intent("org.opencv.engine.BIND"), new OpenCVEngineServiceConnection(), Context.BIND_AUTO_CREATE)) if (!bindService(new Intent("org.opencv.engine.BIND"), new OpenCVEngineServiceConnection(), Context.BIND_AUTO_CREATE))
{ {
TextView EngineVersionView = (TextView)findViewById(R.id.EngineVersionValue); TextView EngineVersionView = (TextView)findViewById(R.id.EngineVersionValue);
@ -235,14 +235,14 @@ public class ManagerActivity extends Activity
filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addAction(Intent.ACTION_PACKAGE_REPLACED); filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
registerReceiver(mPackageChangeReciever, filter); registerReceiver(mPackageChangeReceiver, filter);
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
if (mPackageChangeReciever != null) if (mPackageChangeReceiver != null)
unregisterReceiver(mPackageChangeReciever); unregisterReceiver(mPackageChangeReceiver);
} }
@Override @Override
@ -273,7 +273,7 @@ public class ManagerActivity extends Activity
protected int ManagerApiLevel = 0; protected int ManagerApiLevel = 0;
protected String ManagerVersion; protected String ManagerVersion;
protected BroadcastReceiver mPackageChangeReciever = null; protected BroadcastReceiver mPackageChangeReceiver = null;
protected class OpenCVEngineServiceConnection implements ServiceConnection protected class OpenCVEngineServiceConnection implements ServiceConnection
{ {

View File

@ -12,7 +12,7 @@ static void help()
printf("\nShow off image morphology: erosion, dialation, open and close\n" printf("\nShow off image morphology: erosion, dialation, open and close\n"
"Call:\n morphology2 [image]\n" "Call:\n morphology2 [image]\n"
"This program also shows use of rect, elipse and cross kernels\n\n"); "This program also shows use of rect, ellipse and cross kernels\n\n");
printf( "Hot keys: \n" printf( "Hot keys: \n"
"\tESC - quit the program\n" "\tESC - quit the program\n"
"\tr - use rectangle structuring element\n" "\tr - use rectangle structuring element\n"

View File

@ -13,7 +13,7 @@ static void help()
printf("\nShow off image morphology: erosion, dialation, open and close\n" printf("\nShow off image morphology: erosion, dialation, open and close\n"
"Call:\n morphology2 [image]\n" "Call:\n morphology2 [image]\n"
"This program also shows use of rect, elipse and cross kernels\n\n"); "This program also shows use of rect, ellipse and cross kernels\n\n");
printf( "Hot keys: \n" printf( "Hot keys: \n"
"\tESC - quit the program\n" "\tESC - quit the program\n"
"\tr - use rectangle structuring element\n" "\tr - use rectangle structuring element\n"