Merge pull request #785 from taka-no-me:split_c_cpp2
This commit is contained in:
@@ -732,10 +732,10 @@ void SIFT::operator()(InputArray _image, InputArray _mask,
|
||||
Mat image = _image.getMat(), mask = _mask.getMat();
|
||||
|
||||
if( image.empty() || image.depth() != CV_8U )
|
||||
CV_Error( CV_StsBadArg, "image is empty or has incorrect depth (!=CV_8U)" );
|
||||
CV_Error( Error::StsBadArg, "image is empty or has incorrect depth (!=CV_8U)" );
|
||||
|
||||
if( !mask.empty() && mask.type() != CV_8UC1 )
|
||||
CV_Error( CV_StsBadArg, "mask has incorrect type (!=CV_8UC1)" );
|
||||
CV_Error( Error::StsBadArg, "mask has incorrect type (!=CV_8UC1)" );
|
||||
|
||||
if( useProvidedKeypoints )
|
||||
{
|
||||
|
@@ -427,7 +427,7 @@ void SURFFindInvoker::findMaximaInLayer( const Mat& sum, const Mat& mask_sum,
|
||||
float center_j = sum_j + (size-1)*0.5f;
|
||||
|
||||
KeyPoint kpt( center_j, center_i, (float)sizes[layer],
|
||||
-1, val0, octave, CV_SIGN(trace_ptr[j]) );
|
||||
-1, val0, octave, (trace_ptr[j] > 0) - (trace_ptr[j] < 0) );
|
||||
|
||||
/* Interpolate maxima location within the 3x3x3 neighbourhood */
|
||||
int ds = size - sizes[layer-1];
|
||||
@@ -550,7 +550,7 @@ struct SURFInvoker
|
||||
{
|
||||
if( i*i + j*j <= ORI_RADIUS*ORI_RADIUS )
|
||||
{
|
||||
apt[nOriSamples] = cvPoint(i,j);
|
||||
apt[nOriSamples] = Point(i,j);
|
||||
aptw[nOriSamples++] = G_ori.at<float>(i+ORI_RADIUS,0) * G_ori.at<float>(j+ORI_RADIUS,0);
|
||||
}
|
||||
}
|
||||
@@ -580,9 +580,6 @@ struct SURFInvoker
|
||||
float X[nOriSampleBound], Y[nOriSampleBound], angle[nOriSampleBound];
|
||||
uchar PATCH[PATCH_SZ+1][PATCH_SZ+1];
|
||||
float DX[PATCH_SZ][PATCH_SZ], DY[PATCH_SZ][PATCH_SZ];
|
||||
CvMat matX = cvMat(1, nOriSampleBound, CV_32F, X);
|
||||
CvMat matY = cvMat(1, nOriSampleBound, CV_32F, Y);
|
||||
CvMat _angle = cvMat(1, nOriSampleBound, CV_32F, angle);
|
||||
Mat _patch(PATCH_SZ+1, PATCH_SZ+1, CV_8U, PATCH);
|
||||
|
||||
int dsize = extended ? 128 : 64;
|
||||
@@ -594,7 +591,8 @@ struct SURFInvoker
|
||||
maxSize = std::max(maxSize, (*keypoints)[k].size);
|
||||
}
|
||||
int imaxSize = std::max(cvCeil((PATCH_SZ+1)*maxSize*1.2f/9.0f), 1);
|
||||
Ptr<CvMat> winbuf = cvCreateMat( 1, imaxSize*imaxSize, CV_8U );
|
||||
cv::AutoBuffer<uchar> winbuf(imaxSize*imaxSize);
|
||||
|
||||
for( k = k1; k < k2; k++ )
|
||||
{
|
||||
int i, j, kk, nangle;
|
||||
@@ -648,8 +646,8 @@ struct SURFInvoker
|
||||
kp.size = -1;
|
||||
continue;
|
||||
}
|
||||
matX.cols = matY.cols = _angle.cols = nangle;
|
||||
cvCartToPolar( &matX, &matY, 0, &_angle, 1 );
|
||||
|
||||
phase( Mat(1, nangle, CV_32F, X), Mat(1, nangle, CV_32F, Y), Mat(1, nangle, CV_32F, angle), true );
|
||||
|
||||
float bestx = 0, besty = 0, descriptor_mod = 0;
|
||||
for( i = 0; i < 360; i += SURF_ORI_SEARCH_INC )
|
||||
@@ -680,8 +678,8 @@ struct SURFInvoker
|
||||
|
||||
/* Extract a window of pixels around the keypoint of size 20s */
|
||||
int win_size = (int)((PATCH_SZ+1)*s);
|
||||
CV_Assert( winbuf->cols >= win_size*win_size );
|
||||
Mat win(win_size, win_size, CV_8U, winbuf->data.ptr);
|
||||
CV_Assert( imaxSize >= win_size );
|
||||
Mat win(win_size, win_size, CV_8U, winbuf);
|
||||
|
||||
if( !upright )
|
||||
{
|
||||
|
@@ -113,10 +113,10 @@ void showOrig(const Mat& img, const vector<KeyPoint>& orig_pts)
|
||||
{
|
||||
|
||||
Mat img_color;
|
||||
cvtColor(img, img_color, CV_GRAY2BGR);
|
||||
cvtColor(img, img_color, COLOR_GRAY2BGR);
|
||||
|
||||
for(size_t i = 0; i < orig_pts.size(); ++i)
|
||||
circle(img_color, orig_pts[i].pt, (int)orig_pts[i].size/2, CV_RGB(0, 255, 0));
|
||||
circle(img_color, orig_pts[i].pt, (int)orig_pts[i].size/2, Scalar(0, 255, 0));
|
||||
|
||||
namedWindow("O"); imshow("O", img_color);
|
||||
}
|
||||
@@ -125,13 +125,13 @@ void show(const string& name, const Mat& new_img, const vector<KeyPoint>& new_pt
|
||||
{
|
||||
|
||||
Mat new_img_color;
|
||||
cvtColor(new_img, new_img_color, CV_GRAY2BGR);
|
||||
cvtColor(new_img, new_img_color, COLOR_GRAY2BGR);
|
||||
|
||||
for(size_t i = 0; i < transf_pts.size(); ++i)
|
||||
circle(new_img_color, transf_pts[i].pt, (int)transf_pts[i].size/2, CV_RGB(255, 0, 0));
|
||||
circle(new_img_color, transf_pts[i].pt, (int)transf_pts[i].size/2, Scalar(255, 0, 0));
|
||||
|
||||
for(size_t i = 0; i < new_pts.size(); ++i)
|
||||
circle(new_img_color, new_pts[i].pt, (int)new_pts[i].size/2, CV_RGB(0, 0, 255));
|
||||
circle(new_img_color, new_pts[i].pt, (int)new_pts[i].size/2, Scalar(0, 0, 255));
|
||||
|
||||
namedWindow(name + "_T"); imshow(name + "_T", new_img_color);
|
||||
}
|
||||
|
@@ -232,7 +232,7 @@ protected:
|
||||
featureDetector->detect(image0, keypoints0);
|
||||
removeVerySmallKeypoints(keypoints0);
|
||||
if(keypoints0.size() < 15)
|
||||
CV_Error(CV_StsAssert, "Detector gives too few points in a test image\n");
|
||||
CV_Error(Error::StsAssert, "Detector gives too few points in a test image\n");
|
||||
|
||||
const int maxAngle = 360, angleStep = 15;
|
||||
for(int angle = 0; angle < maxAngle; angle += angleStep)
|
||||
@@ -262,7 +262,7 @@ protected:
|
||||
float angle0 = keypoints0[matches[m].queryIdx].angle;
|
||||
float angle1 = keypoints1[matches[m].trainIdx].angle;
|
||||
if(angle0 == -1 || angle1 == -1)
|
||||
CV_Error(CV_StsBadArg, "Given FeatureDetector is not rotation invariant, it can not be tested here.\n");
|
||||
CV_Error(Error::StsBadArg, "Given FeatureDetector is not rotation invariant, it can not be tested here.\n");
|
||||
CV_Assert(angle0 >= 0.f && angle0 < 360.f);
|
||||
CV_Assert(angle1 >= 0.f && angle1 < 360.f);
|
||||
|
||||
@@ -347,7 +347,7 @@ protected:
|
||||
featureDetector->detect(image0, keypoints0);
|
||||
removeVerySmallKeypoints(keypoints0);
|
||||
if(keypoints0.size() < 15)
|
||||
CV_Error(CV_StsAssert, "Detector gives too few points in a test image\n");
|
||||
CV_Error(Error::StsAssert, "Detector gives too few points in a test image\n");
|
||||
descriptorExtractor->compute(image0, keypoints0, descriptors0);
|
||||
|
||||
BFMatcher bfmatcher(normType);
|
||||
@@ -432,7 +432,7 @@ protected:
|
||||
featureDetector->detect(image0, keypoints0);
|
||||
removeVerySmallKeypoints(keypoints0);
|
||||
if(keypoints0.size() < 15)
|
||||
CV_Error(CV_StsAssert, "Detector gives too few points in a test image\n");
|
||||
CV_Error(Error::StsAssert, "Detector gives too few points in a test image\n");
|
||||
|
||||
for(int scaleIdx = 1; scaleIdx <= 3; scaleIdx++)
|
||||
{
|
||||
@@ -444,7 +444,7 @@ protected:
|
||||
featureDetector->detect(image1, keypoints1);
|
||||
removeVerySmallKeypoints(keypoints1);
|
||||
if(keypoints1.size() < 15)
|
||||
CV_Error(CV_StsAssert, "Detector gives too few points in a test image\n");
|
||||
CV_Error(Error::StsAssert, "Detector gives too few points in a test image\n");
|
||||
|
||||
if(keypoints1.size() > keypoints0.size())
|
||||
{
|
||||
@@ -553,7 +553,7 @@ protected:
|
||||
featureDetector->detect(image0, keypoints0);
|
||||
removeVerySmallKeypoints(keypoints0);
|
||||
if(keypoints0.size() < 15)
|
||||
CV_Error(CV_StsAssert, "Detector gives too few points in a test image\n");
|
||||
CV_Error(Error::StsAssert, "Detector gives too few points in a test image\n");
|
||||
Mat descriptors0;
|
||||
descriptorExtractor->compute(image0, keypoints0, descriptors0);
|
||||
|
||||
|
Reference in New Issue
Block a user