]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
fixed MSVC 2008 compile errors and warnings
authorvp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 5 Apr 2010 10:58:54 +0000 (10:58 +0000)
committervp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 5 Apr 2010 10:58:54 +0000 (10:58 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@2983 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/3rdparty/lapack/slamch.c
opencv/src/cv/cvhaar.cpp
opencv/src/cv/cvstereosgbm.cpp
opencv/src/cv/cvsurf.cpp
opencv/src/cvaux/cvoneway.cpp

index 1eab1f19f381e6cd45eb6fbbded4bbda9a4528c6..78626fe08dfb1359868a07512066400141cbc933 100644 (file)
@@ -78,7 +78,7 @@ slamch_(char *cmach) {
         /* Use SMALL plus a bit, to avoid the possibility of rounding causing overflow
          when computing  1/sfmin. */
         sfmin = FLT_MIN;
-        small = 2. / FLT_MAX;
+        small = (float)(2. / FLT_MAX);
         if (small <= sfmin) small = sfmin * (1 + eps);
         return small;
     } else if ('U' == ch || 'u' == ch) {
index b8d9d45b09b465f434c34b241368929ae701744a..20ea15f23a2dcfd522ed794cc57eb90b1fda8af0 100644 (file)
@@ -821,8 +821,8 @@ struct HaarDetectObjects_ScaleImage_Invoker
 {
     HaarDetectObjects_ScaleImage_Invoker( const CvHaarClassifierCascade* _cascade,
                                           int _stripSize, double _factor,
-                                          const Mat& _sum1, const Mat& _sqsum1, Mat& _norm1,
-                                          Mat& _mask1, Rect _equRect, ConcurrentRectVector& _vec )
+                                          const Mat& _sum1, const Mat& _sqsum1, Mat* _norm1,
+                                          Mat* _mask1, Rect _equRect, ConcurrentRectVector& _vec )
     {
         cascade = _cascade;
         stripSize = _stripSize;
@@ -846,19 +846,20 @@ struct HaarDetectObjects_ScaleImage_Invoker
     #ifdef HAVE_IPP
         if( cascade->hid_cascade->ipp_stages )
         {
+            IppiRect iequRect = {equRect.x, equRect.y, equRect.width, equRect.height};
             ippiRectStdDev_32f_C1R(sum1.ptr<float>(y1), sum1.step,
                                    sqsum1.ptr<double>(y1), sqsum1.step,
-                                   (float*)norm1.ptr<float>(y1), norm1.step,
-                                   ippiSize(ssz.width, ssz.height), equRect );
+                                   norm1->ptr<float>(y1), norm1->step,
+                                   ippiSize(ssz.width, ssz.height), iequRect );
             
             int positive = (ssz.width/ystep)*((ssz.height + ystep-1)/ystep);
-            
+
             if( ystep == 1 )
-                mask1 = Scalar::all(1);
+                (*mask1) = Scalar::all(1);
             else
                 for( y = y1; y < y2; y++ )
                 {
-                    uchar* mask1row = mask1.ptr(y);
+                    uchar* mask1row = mask1->ptr(y);
                     memset( mask1row, 0, ssz.width );
                     
                     if( y % ystep == 0 )
@@ -870,8 +871,8 @@ struct HaarDetectObjects_ScaleImage_Invoker
             {
                 if( ippiApplyHaarClassifier_32f_C1R(
                             sum1.ptr<float>(y1), sum1.step,
-                            norm1.ptr<float>(y1), norm1.step,
-                            (uchar*)mask1.ptr<uchar>(y1), mask1.step,
+                            norm1->ptr<float>(y1), norm1->step,
+                            mask1->ptr<uchar>(y1), mask1->step,
                             ippiSize(ssz.width, ssz.height), &positive,
                             cascade->hid_cascade->stage_classifier[j].threshold,
                             (IppiHaarClassifier_32f*)cascade->hid_cascade->ipp_stages[j]) < 0 )
@@ -883,7 +884,7 @@ struct HaarDetectObjects_ScaleImage_Invoker
             if( positive > 0 )
                 for( y = y1; y < y2; y += ystep )
                 {
-                    uchar* mask1row = mask1.row(y);
+                    uchar* mask1row = mask1->ptr(y);
                     for( x = 0; x < ssz.width; x += ystep )
                         if( mask1row[x] != 0 )
                         {
@@ -910,7 +911,7 @@ struct HaarDetectObjects_ScaleImage_Invoker
     const CvHaarClassifierCascade* cascade;
     int stripSize;
     double factor;
-    Mat sum1, sqsum1, norm1, mask1;
+    Mat sum1, sqsum1, *norm1, *mask1;
     Rect equRect;
     ConcurrentRectVector* vec;
 };
@@ -1099,7 +1100,7 @@ cvHaarDetectObjects( const CvArr* _img,
             if( use_ipp )
             {
                 cv::Mat fsum(sum1.rows, sum1.cols, CV_32F, sum1.data.ptr, sum1.step);
-                cv::Mat(sum1).convertTo(fsum, CV_32F, 1, -(1<<24));
+                cv::Mat(&sum1).convertTo(fsum, CV_32F, 1, -(1<<24));
             }
             else
 #endif
@@ -1109,7 +1110,7 @@ cvHaarDetectObjects( const CvArr* _img,
             cv::parallel_for(cv::BlockedRange(0, stripCount),
                          cv::HaarDetectObjects_ScaleImage_Invoker(cascade,
                                 (((sz1.height + stripCount - 1)/stripCount + ystep-1)/ystep)*ystep,
-                                factor, cv::Mat(&sum1), cv::Mat(&sqsum1), _norm1, _mask1,
+                                factor, cv::Mat(&sum1), cv::Mat(&sqsum1), &_norm1, &_mask1,
                                 cv::Rect(equRect), allCandidates));
         }
     }
index bbd6ea83cabf9023b856e00e3cbb3350986e61db..a4b546f2ec85a618bf3a13a10a509a4e2fae99da 100644 (file)
@@ -111,7 +111,7 @@ StereoSGBM::~StereoSGBM()
 static void calcPixelCostBT( const Mat& img1, const Mat& img2, int y,
                             int minD, int maxD, CostType* cost,
                             PixType* buffer, const PixType* tab,
-                            int tabOfs, int ftzero )
+                            int tabOfs, int )
 {
     int x, c, width = img1.cols, cn = img1.channels();
     int minX1 = max(maxD, 0), maxX1 = width + min(minD, 0);
index 49682c33c2a204aa8fa0fd3a73f5968ebff9d5c7..2643a01f15dfb2697d7c6fa69a07078a9764e621 100644 (file)
@@ -670,7 +670,7 @@ cvExtractSURF( const CvArr* _img, const CvArr* _mask,
                           int useProvidedKeyPts)
 {
     const int ORI_RADIUS = cv::SURFInvoker::ORI_RADIUS;
-    const int ORI_SIGMA = cv::SURFInvoker::ORI_SIGMA;
+    const float ORI_SIGMA = cv::SURFInvoker::ORI_SIGMA;
     const float DESC_SIGMA = cv::SURFInvoker::DESC_SIGMA;
     
     CvMat *sum = 0, *mask1 = 0, *mask_sum = 0;
index d12aca95fce185452300042a44e97e0ea3c4ca67..24cf179e266cd14ff248e6552537163bc06a7c6c 100644 (file)
@@ -131,13 +131,13 @@ namespace cv{
         cvReleaseImage(&workspace_float);
     }
     
-    void generate_mean_patch_fast(IplImage* frontal, IplImage* result, CvAffinePose pose,
-                                  CvMat* pca_hr_avg, CvMat* pca_hr_eigenvectors, const OneWayDescriptor* pca_descriptors)
+    void generate_mean_patch_fast(IplImage* /*frontal*/, IplImage* /*result*/, CvAffinePose /*pose*/,
+                                  CvMat* /*pca_hr_avg*/, CvMat* /*pca_hr_eigenvectors*/, const OneWayDescriptor* /*pca_descriptors*/)
     {
-        for(int i = 0; i < pca_hr_eigenvectors->cols; i++)
+        /*for(int i = 0; i < pca_hr_eigenvectors->cols; i++)
         {
             
-        }
+        }*/
     }
     
     void readPCAFeatures(const char* filename, CvMat** avg, CvMat** eigenvectors);
@@ -309,7 +309,7 @@ namespace cv{
         IplImage* temp2 = cvCloneImage(temp);
         CvMat* rotation_phi = cvCreateMat(2, 3, CV_32FC1);
         
-        CvSize new_size = cvSize(temp->width*pose.lambda1, temp->height*pose.lambda2);
+        CvSize new_size = cvSize(cvRound(temp->width*pose.lambda1), cvRound(temp->height*pose.lambda2));
         IplImage* temp3 = cvCreateImage(new_size, IPL_DEPTH_32F, src->nChannels);
         
         cvConvertScale(src, temp);
@@ -355,10 +355,10 @@ namespace cv{
             //AffineTransformPatch(frontal, patch_8u, m_affine_poses[i]);
             generate_mean_patch(frontal, patch_8u, m_affine_poses[i], num_mean_components, noise_intensity);
             
-            float scale = 1.0f;
+            double scale = 1.0f;
             if(norm)
             {
-                float sum = cvSum(patch_8u).val[0];
+                double sum = cvSum(patch_8u).val[0];
                 scale = 1/sum;
             }
             cvConvertScale(patch_8u, m_samples[i], scale);
@@ -391,7 +391,7 @@ namespace cv{
         cvMinMaxLoc(frontal, 0, &maxval);
         CvMat* frontal_data = ConvertImageToMatrix(frontal);
         
-        float sum = cvSum(frontal_data).val[0];
+        double sum = cvSum(frontal_data).val[0];
         cvConvertScale(frontal_data, frontal_data, 1.0f/sum);
         cvProjectPCA(frontal_data, pca_hr_avg, pca_hr_eigenvectors, pca_coeffs);
         for(int i = 0; i < m_pose_count; i++)
@@ -399,7 +399,7 @@ namespace cv{
             cvSetZero(m_samples[i]);
             for(int j = 0; j < m_pca_dim_high; j++)
             {
-                float coeff = cvmGet(pca_coeffs, 0, j);
+                double coeff = cvmGet(pca_coeffs, 0, j);
                 IplImage* patch = pca_descriptors[j + 1].GetPatch(i);
                 cvAddWeighted(m_samples[i], 1.0, patch, coeff, 0, m_samples[i]);
                 
@@ -416,7 +416,7 @@ namespace cv{
             }
             
             cvAdd(pca_descriptors[0].GetPatch(i), m_samples[i], m_samples[i]);
-            float sum = cvSum(m_samples[i]).val[0];
+            double sum = cvSum(m_samples[i]).val[0];
             cvConvertScale(m_samples[i], m_samples[i], 1.0/sum);
             
 #if 0
@@ -519,7 +519,7 @@ namespace cv{
             }
             return;
         }
-        CvRect roi;
+        CvRect roi={0,0,0,0};
         if (!CV_IS_MAT(patch))
         {
             roi = cvGetImageROI((IplImage*)patch);
@@ -540,7 +540,7 @@ namespace cv{
         else
         {
             IplImage* patch_32f = cvCreateImage(cvSize(roi.width, roi.height), IPL_DEPTH_32F, 1);
-            float sum = cvSum(patch).val[0];
+            double sum = cvSum(patch).val[0];
             cvConvertScale(patch, patch_32f, 1.0f/sum);
             ProjectPCASample(patch_32f, avg, eigenvectors, pca_coeffs);
             cvReleaseImage(&patch_32f);
@@ -552,7 +552,7 @@ namespace cv{
         
         for(int i = 0; i < m_pose_count; i++)
         {
-            float dist = cvNorm(m_pca_coeffs[i], pca_coeffs);
+            double dist = cvNorm(m_pca_coeffs[i], pca_coeffs);
             //         float dist = 0;
             //         float data1, data2;
             //         //CvMat* pose_pca_coeffs = m_pca_coeffs[i];
@@ -583,7 +583,7 @@ namespace cv{
             //#endif
             if(dist < distance)
             {
-                distance = dist;
+                distance = (float)dist;
                 pose_idx = i;
             }
         }
@@ -598,7 +598,7 @@ namespace cv{
         
         CvRect roi = cvGetImageROI(patch);
         IplImage* patch_32f = cvCreateImage(cvSize(roi.width, roi.height), IPL_DEPTH_32F, patch->nChannels);
-        float sum = cvSum(patch).val[0];
+        double sum = cvSum(patch).val[0];
         cvConvertScale(patch, patch_32f, 1/sum);
         
         for(int i = 0; i < m_pose_count; i++)
@@ -607,7 +607,7 @@ namespace cv{
             {
                 continue;
             }
-            float dist = cvNorm(m_samples[i], patch_32f);
+            double dist = cvNorm(m_samples[i], patch_32f);
             //float dist = 0.0f;
             //float i1,i2;
             
@@ -621,7 +621,7 @@ namespace cv{
             
             if(dist < distance)
             {
-                distance = dist;
+                distance = (float)dist;
                 pose_idx = i;
             }
             
@@ -701,7 +701,7 @@ namespace cv{
             {
                 for(int x = 0; x < m_samples[i]->width; x++)
                 {
-                    float val = cvmGet(mat, i, y*m_samples[i]->width + x);
+                    float val = (float)cvmGet(mat, i, y*m_samples[i]->width + x);
                     *((float*)(m_samples[i]->imageData + y*m_samples[i]->widthStep) + x) = val;
                 }
             }
@@ -748,7 +748,7 @@ namespace cv{
                 cvCopy(patch,test_img);
             }
             IplImage* patch_32f = cvCreateImage(cvSize(_roi.width, _roi.height), IPL_DEPTH_32F, 1);
-            float sum = cvSum(test_img).val[0];
+            double sum = cvSum(test_img).val[0];
             cvConvertScale(test_img, patch_32f, 1.0f/sum);
             
             //ProjectPCASample(patch_32f, avg, eigenvectors, pca_coeffs);
@@ -945,7 +945,7 @@ namespace cv{
                 cvCopy(patch,test_img);
             }
             IplImage* patch_32f = cvCreateImage(cvSize(_roi.width, _roi.height), IPL_DEPTH_32F, 1);
-            float sum = cvSum(test_img).val[0];
+            double sum = cvSum(test_img).val[0];
             cvConvertScale(test_img, patch_32f, 1.0f/sum);
             
             //ProjectPCASample(patch_32f, avg, eigenvectors, pca_coeffs);
@@ -1361,15 +1361,13 @@ namespace cv{
     
     void OneWayDescriptorBase::FindDescriptor(IplImage* src, cv::Point2f pt, int& desc_idx, int& pose_idx, float& distance) const
     {
-        
-        CvRect roi = cvRect(pt.x - m_patch_size.width/4, pt.y - m_patch_size.height/4, m_patch_size.width/2, m_patch_size.height/2);
+        CvRect roi = cvRect(cvRound(pt.x - m_patch_size.width/4),
+                            cvRound(pt.y - m_patch_size.height/4),
+                            m_patch_size.width/2, m_patch_size.height/2);
         cvSetImageROI(src, roi);
         
-        
         FindDescriptor(src, desc_idx, pose_idx, distance);
-        
-        cvResetImageROI(src);
-        
+        cvResetImageROI(src);   
     }
     
     void OneWayDescriptorBase::FindDescriptor(IplImage* patch, int& desc_idx, int& pose_idx, float& distance, float* _scale, float* scale_ranges) const
@@ -1511,10 +1509,10 @@ namespace cv{
             m_poses = new CvAffinePose[m_pose_count];
             for(int i = 0; i < m_pose_count; i++)
             {
-                m_poses[i].phi = cvmGet(poses, i, 0);
-                m_poses[i].theta = cvmGet(poses, i, 1);
-                m_poses[i].lambda1 = cvmGet(poses, i, 2);
-                m_poses[i].lambda2 = cvmGet(poses, i, 3);
+                m_poses[i].phi = (float)cvmGet(poses, i, 0);
+                m_poses[i].theta = (float)cvmGet(poses, i, 1);
+                m_poses[i].lambda1 = (float)cvmGet(poses, i, 2);
+                m_poses[i].lambda2 = (float)cvmGet(poses, i, 3);
             }
             cvReleaseMat(&poses);
             
@@ -1756,7 +1754,7 @@ namespace cv{
             {
                 for(int x = 0; x < roi.width; x++)
                 {
-                    float val = cvmGet(eigenvector, 0, roi.width*y + x);
+                    float val = (float)cvmGet(eigenvector, 0, roi.width*y + x);
                     *((float*)(img->imageData + (roi.y + y)*img->widthStep) + roi.x + x) = val;
                 }
             }
@@ -1767,7 +1765,7 @@ namespace cv{
             {
                 for(int x = 0; x < roi.width; x++)
                 {
-                    float val = cvmGet(eigenvector, 0, roi.width*y + x);
+                    float val = (float)cvmGet(eigenvector, 0, roi.width*y + x);
                     img->imageData[(roi.y + y)*img->widthStep + roi.x + x] = (unsigned char)val;
                 }
             }