From a0be7b57f53ea26cffe8b4560dcf647b450d5a72 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 7 Nov 2012 17:13:19 +0400 Subject: [PATCH 01/11] fixed bug in gpu::PyrLKOpticalFlow::dense vector index out of range --- modules/gpu/src/pyrlk.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/gpu/src/pyrlk.cpp b/modules/gpu/src/pyrlk.cpp index fc585f4de2..9b6ab0821b 100644 --- a/modules/gpu/src/pyrlk.cpp +++ b/modules/gpu/src/pyrlk.cpp @@ -200,6 +200,9 @@ void cv::gpu::PyrLKOpticalFlow::dense(const GpuMat& prevImg, const GpuMat& nextI pyrDown(nextPyr_[level - 1], nextPyr_[level]); } + uPyr_.resize(2); + vPyr_.resize(2); + ensureSizeIsEnough(prevImg.size(), CV_32FC1, uPyr_[0]); ensureSizeIsEnough(prevImg.size(), CV_32FC1, vPyr_[0]); ensureSizeIsEnough(prevImg.size(), CV_32FC1, uPyr_[1]); From 91634719877a6c33b40253e30e8e572c63fa0487 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Thu, 8 Nov 2012 14:09:43 +0400 Subject: [PATCH 02/11] improved accuracy of 3x3 invert on poorly-conditioned matrices (bug #2525) --- modules/core/src/lapack.cpp | 67 +++++++-------------------------- modules/core/test/test_math.cpp | 15 ++++++++ 2 files changed, 28 insertions(+), 54 deletions(-) diff --git a/modules/core/src/lapack.cpp b/modules/core/src/lapack.cpp index 4d179022e0..1abffa8b35 100644 --- a/modules/core/src/lapack.cpp +++ b/modules/core/src/lapack.cpp @@ -954,7 +954,7 @@ double cv::invert( InputArray _src, OutputArray _dst, int method ) size_t esz = CV_ELEM_SIZE(type); int m = src.rows, n = src.cols; - if( method == DECOMP_SVD ) + if( method == DECOMP_SVD ) { int nm = std::min(m, n); @@ -1101,62 +1101,21 @@ double cv::invert( InputArray _src, OutputArray _dst, int method ) result = true; d = 1./d; - #if CV_SSE2 - if(USE_SSE2) - { - __m128 det =_mm_set1_ps((float)d); - __m128 s0 = _mm_loadu_ps((const float*)srcdata);//s0 = Sf(0,0) Sf(0,1) Sf(0,2) *** - __m128 s1 = _mm_loadu_ps((const float*)(srcdata+srcstep));//s1 = Sf(1,0) Sf(1,1) Sf(1,2) *** - __m128 s2 = _mm_set_ps(0.f, Sf(2,2), Sf(2,1), Sf(2,0)); //s2 = Sf(2,0) Sf(2,1) Sf(2,2) *** - - __m128 r0 = _mm_shuffle_ps(s1,s1,_MM_SHUFFLE(3,0,2,1)); //r0 = Sf(1,1) Sf(1,2) Sf(1,0) *** - __m128 r1 = _mm_shuffle_ps(s2,s2,_MM_SHUFFLE(3,1,0,2)); //r1 = Sf(2,2) Sf(2,0) Sf(2,1) *** - __m128 r2 = _mm_shuffle_ps(s2,s2,_MM_SHUFFLE(3,0,2,1)); //r2 = Sf(2,1) Sf(2,2) Sf(2,0) *** - - __m128 t0 = _mm_mul_ps(s0, r0);//t0 = Sf(0,0)*Sf(1,1) Sf(0,1)*Sf(1,2) Sf(0,2)*Sf(1,0) *** - __m128 t1 = _mm_mul_ps(s0, r1);//t1 = Sf(0,0)*Sf(2,2) Sf(0,1)*Sf(2,0) Sf(0,2)*Sf(2,1) *** - __m128 t2 = _mm_mul_ps(s1, r2);//t2 = Sf(1,0)*Sf(2,1) Sf(1,1)*Sf(2,2) Sf(1,2)*Sf(2,0) *** - - __m128 r3 = _mm_shuffle_ps(s0,s0,_MM_SHUFFLE(3,0,2,1));//r3 = Sf(0,1) Sf(0,2) Sf(0,0) *** - __m128 r4 = _mm_shuffle_ps(s0,s0,_MM_SHUFFLE(3,1,0,2));//r4 = Sf(0,2) Sf(0,0) Sf(0,1) *** - - __m128 t00 = _mm_mul_ps(s1, r3);//t00 = Sf(1,0)*Sf(0,1) Sf(1,1)*Sf(0,2) Sf(1,2)*Sf(0,0) *** - __m128 t11 = _mm_mul_ps(s2, r4);//t11 = Sf(2,0)*Sf(0,2) Sf(2,1)*Sf(0,0) Sf(2,2)*Sf(0,1) *** - __m128 t22 = _mm_mul_ps(s2, r0);//t22 = Sf(2,0)*Sf(1,1) Sf(2,1)*Sf(1,2) Sf(2,2)*Sf(1,0) *** - - t0 = _mm_mul_ps(_mm_sub_ps(t0,t00), det);//Sf(0,0)*Sf(1,1) Sf(0,1)*Sf(1,2) Sf(0,2)*Sf(1,0) *** - //-Sf(1,0)*Sf(0,1) -Sf(1,1)*Sf(0,2) -Sf(1,2)*Sf(0,0) - t1 = _mm_mul_ps(_mm_sub_ps(t1,t11), det);//Sf(0,0)*Sf(2,2) Sf(0,1)*Sf(2,0) Sf(0,2)*Sf(2,1) *** - //-Sf(2,0)*Sf(0,2) -Sf(2,1)*Sf(0,0) -Sf(2,2)*Sf(0,1) - t2 = _mm_mul_ps(_mm_sub_ps(t2,t22), det);//Sf(1,0)*Sf(2,1) Sf(1,1)*Sf(2,2) Sf(1,2)*Sf(2,0) *** - //-Sf(2,0)*Sf(1,1) -Sf(2,1)*Sf(1,2) -Sf(2,2)*Sf(1,0) - _mm_store_ps(t, t0); - _mm_store_ps(t+4, t1); - _mm_store_ps(t+8, t2); - - Df(0,0) = t[9]; Df(0,1) = t[6]; Df(0,2) = t[1]; - Df(1,0) = t[10]; Df(1,1) = t[4]; Df(1,2) = t[2]; - Df(2,0) = t[8]; Df(2,1) = t[5]; Df(2,2) = t[0]; - } - else - #endif - { - t[0] = (float)(((double)Sf(1,1) * Sf(2,2) - (double)Sf(1,2) * Sf(2,1)) * d); - t[1] = (float)(((double)Sf(0,2) * Sf(2,1) - (double)Sf(0,1) * Sf(2,2)) * d); - t[2] = (float)(((double)Sf(0,1) * Sf(1,2) - (double)Sf(0,2) * Sf(1,1)) * d); + t[0] = (float)(((double)Sf(1,1) * Sf(2,2) - (double)Sf(1,2) * Sf(2,1)) * d); + t[1] = (float)(((double)Sf(0,2) * Sf(2,1) - (double)Sf(0,1) * Sf(2,2)) * d); + t[2] = (float)(((double)Sf(0,1) * Sf(1,2) - (double)Sf(0,2) * Sf(1,1)) * d); - t[3] = (float)(((double)Sf(1,2) * Sf(2,0) - (double)Sf(1,0) * Sf(2,2)) * d); - t[4] = (float)(((double)Sf(0,0) * Sf(2,2) - (double)Sf(0,2) * Sf(2,0)) * d); - t[5] = (float)(((double)Sf(0,2) * Sf(1,0) - (double)Sf(0,0) * Sf(1,2)) * d); + t[3] = (float)(((double)Sf(1,2) * Sf(2,0) - (double)Sf(1,0) * Sf(2,2)) * d); + t[4] = (float)(((double)Sf(0,0) * Sf(2,2) - (double)Sf(0,2) * Sf(2,0)) * d); + t[5] = (float)(((double)Sf(0,2) * Sf(1,0) - (double)Sf(0,0) * Sf(1,2)) * d); - t[6] = (float)(((double)Sf(1,0) * Sf(2,1) - (double)Sf(1,1) * Sf(2,0)) * d); - t[7] = (float)(((double)Sf(0,1) * Sf(2,0) - (double)Sf(0,0) * Sf(2,1)) * d); - t[8] = (float)(((double)Sf(0,0) * Sf(1,1) - (double)Sf(0,1) * Sf(1,0)) * d); + t[6] = (float)(((double)Sf(1,0) * Sf(2,1) - (double)Sf(1,1) * Sf(2,0)) * d); + t[7] = (float)(((double)Sf(0,1) * Sf(2,0) - (double)Sf(0,0) * Sf(2,1)) * d); + t[8] = (float)(((double)Sf(0,0) * Sf(1,1) - (double)Sf(0,1) * Sf(1,0)) * d); - Df(0,0) = t[0]; Df(0,1) = t[1]; Df(0,2) = t[2]; - Df(1,0) = t[3]; Df(1,1) = t[4]; Df(1,2) = t[5]; - Df(2,0) = t[6]; Df(2,1) = t[7]; Df(2,2) = t[8]; - } + Df(0,0) = t[0]; Df(0,1) = t[1]; Df(0,2) = t[2]; + Df(1,0) = t[3]; Df(1,1) = t[4]; Df(1,2) = t[5]; + Df(2,0) = t[6]; Df(2,1) = t[7]; Df(2,2) = t[8]; } } else diff --git a/modules/core/test/test_math.cpp b/modules/core/test/test_math.cpp index dfc58b72ff..1203961311 100644 --- a/modules/core/test/test_math.cpp +++ b/modules/core/test/test_math.cpp @@ -2453,6 +2453,21 @@ REGISTER_TYPED_TEST_CASE_P(Core_CheckRange, Negative, Positive, Bounds, Zero); typedef ::testing::Types mat_data_types; INSTANTIATE_TYPED_TEST_CASE_P(Negative_Test, Core_CheckRange, mat_data_types); +TEST(Core_Invert, small) +{ + cv::Mat a = (cv::Mat_(3,3) << 2.42104644730331, 1.81444796521479, -3.98072565304758, 0, 7.08389214348967e-3, 5.55326770986007e-3, 0,0, 7.44556154284261e-3); + //cv::randu(a, -1, 1); + + cv::Mat b = a.t()*a; + cv::Mat c, i = Mat_::eye(3, 3); + cv::invert(b, c, cv::DECOMP_LU); //std::cout << b*c << std::endl; + ASSERT_LT( cv::norm(b*c, i, CV_C), 0.1 ); + cv::invert(b, c, cv::DECOMP_SVD); //std::cout << b*c << std::endl; + ASSERT_LT( cv::norm(b*c, i, CV_C), 0.1 ); + cv::invert(b, c, cv::DECOMP_CHOLESKY); //std::cout << b*c << std::endl; + ASSERT_LT( cv::norm(b*c, i, CV_C), 0.1 ); +} + ///////////////////////////////////////////////////////////////////////////////////////////////////// TEST(Core_CovarMatrix, accuracy) { Core_CovarMatrixTest test; test.safe_run(); } From 2e54e2a5863eb38bedd2bcaf1dbb455655096932 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Thu, 8 Nov 2012 16:15:04 +0400 Subject: [PATCH 03/11] fixed problem with LBPHFaceRecognizer::update() without breaking binary compatibility. --- modules/contrib/src/facerec.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/contrib/src/facerec.cpp b/modules/contrib/src/facerec.cpp index 7a8ab74209..fbf124a486 100644 --- a/modules/contrib/src/facerec.cpp +++ b/modules/contrib/src/facerec.cpp @@ -300,7 +300,13 @@ public: //------------------------------------------------------------------------------ // FaceRecognizer //------------------------------------------------------------------------------ -void FaceRecognizer::update(InputArrayOfArrays, InputArray) { +void FaceRecognizer::update(InputArrayOfArrays src, InputArray labels ) { + if( dynamic_cast(this) != 0 ) + { + dynamic_cast(this)->update( src, labels ); + return; + } + string error_msg = format("This FaceRecognizer (%s) does not support updating, you have to use FaceRecognizer::train to update it.", this->name().c_str()); CV_Error(CV_StsNotImplemented, error_msg); } From 91a9923dcf89af8492d116fb12ab5aeaf1b679f7 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 9 Nov 2012 09:40:19 +0400 Subject: [PATCH 04/11] Face detection package name replaced on org.opencv.facedetect for consistency with Google Play package. --- .../face-detection/AndroidManifest.xml | 2 +- .../jni/DetectionBasedTracker_jni.cpp | 36 +++++++++---------- .../jni/DetectionBasedTracker_jni.h | 12 +++---- .../DetectionBasedTracker.java | 2 +- .../{fd => facedetect}/FdActivity.java | 2 +- .../samples/{fd => facedetect}/FpsMeter.java | 2 +- 6 files changed, 28 insertions(+), 28 deletions(-) rename samples/android/face-detection/src/org/opencv/samples/{fd => facedetect}/DetectionBasedTracker.java (96%) rename samples/android/face-detection/src/org/opencv/samples/{fd => facedetect}/FdActivity.java (99%) rename samples/android/face-detection/src/org/opencv/samples/{fd => facedetect}/FpsMeter.java (97%) diff --git a/samples/android/face-detection/AndroidManifest.xml b/samples/android/face-detection/AndroidManifest.xml index eaa90dfd08..a52dc660eb 100644 --- a/samples/android/face-detection/AndroidManifest.xml +++ b/samples/android/face-detection/AndroidManifest.xml @@ -1,6 +1,6 @@ diff --git a/samples/android/face-detection/jni/DetectionBasedTracker_jni.cpp b/samples/android/face-detection/jni/DetectionBasedTracker_jni.cpp index 976f1683cd..2ade0ca981 100644 --- a/samples/android/face-detection/jni/DetectionBasedTracker_jni.cpp +++ b/samples/android/face-detection/jni/DetectionBasedTracker_jni.cpp @@ -18,10 +18,10 @@ inline void vector_Rect_to_Mat(vector& v_rect, Mat& mat) mat = Mat(v_rect, true); } -JNIEXPORT jlong JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeCreateObject +JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject (JNIEnv * jenv, jclass, jstring jFileName, jint faceSize) { - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeCreateObject enter"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject enter"); const char* jnamestr = jenv->GetStringUTFChars(jFileName, NULL); string stdFileName(jnamestr); jlong result = 0; @@ -49,14 +49,14 @@ JNIEXPORT jlong JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeC return 0; } - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeCreateObject exit"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject exit"); return result; } -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDestroyObject +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject (JNIEnv * jenv, jclass, jlong thiz) { - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDestroyObject enter"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject enter"); try { if(thiz != 0) @@ -79,13 +79,13 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDe jclass je = jenv->FindClass("java/lang/Exception"); jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}"); } - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDestroyObject exit"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject exit"); } -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStart +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart (JNIEnv * jenv, jclass, jlong thiz) { - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStart enter"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart enter"); try { ((DetectionBasedTracker*)thiz)->run(); @@ -104,13 +104,13 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSt jclass je = jenv->FindClass("java/lang/Exception"); jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}"); } - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStart exit"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart exit"); } -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStop +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop (JNIEnv * jenv, jclass, jlong thiz) { - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStop enter"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop enter"); try { ((DetectionBasedTracker*)thiz)->stop(); @@ -129,13 +129,13 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSt jclass je = jenv->FindClass("java/lang/Exception"); jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}"); } - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStop exit"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop exit"); } -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSetFaceSize +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize (JNIEnv * jenv, jclass, jlong thiz, jint faceSize) { - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSetFaceSize enter"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize enter"); try { if (faceSize > 0) @@ -160,14 +160,14 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSe jclass je = jenv->FindClass("java/lang/Exception"); jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}"); } - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSetFaceSize exit"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize exit"); } -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDetect +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect (JNIEnv * jenv, jclass, jlong thiz, jlong imageGray, jlong faces) { - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDetect enter"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect enter"); try { vector RectFaces; @@ -189,5 +189,5 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDe jclass je = jenv->FindClass("java/lang/Exception"); jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}"); } - LOGD("Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDetect exit"); + LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect exit"); } \ No newline at end of file diff --git a/samples/android/face-detection/jni/DetectionBasedTracker_jni.h b/samples/android/face-detection/jni/DetectionBasedTracker_jni.h index 7ae94c3dd7..7e0541d810 100644 --- a/samples/android/face-detection/jni/DetectionBasedTracker_jni.h +++ b/samples/android/face-detection/jni/DetectionBasedTracker_jni.h @@ -12,7 +12,7 @@ extern "C" { * Method: nativeCreateObject * Signature: (Ljava/lang/String;F)J */ -JNIEXPORT jlong JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeCreateObject +JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject (JNIEnv *, jclass, jstring, jint); /* @@ -20,7 +20,7 @@ JNIEXPORT jlong JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeC * Method: nativeDestroyObject * Signature: (J)V */ -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDestroyObject +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject (JNIEnv *, jclass, jlong); /* @@ -28,7 +28,7 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDe * Method: nativeStart * Signature: (J)V */ -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStart +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart (JNIEnv *, jclass, jlong); /* @@ -36,7 +36,7 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSt * Method: nativeStop * Signature: (J)V */ -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeStop +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop (JNIEnv *, jclass, jlong); /* @@ -44,7 +44,7 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSt * Method: nativeSetFaceSize * Signature: (JI)V */ - JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSetFaceSize + JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize (JNIEnv *, jclass, jlong, jint); /* @@ -52,7 +52,7 @@ JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeSt * Method: nativeDetect * Signature: (JJJ)V */ -JNIEXPORT void JNICALL Java_org_opencv_samples_fd_DetectionBasedTracker_nativeDetect +JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect (JNIEnv *, jclass, jlong, jlong, jlong); #ifdef __cplusplus diff --git a/samples/android/face-detection/src/org/opencv/samples/fd/DetectionBasedTracker.java b/samples/android/face-detection/src/org/opencv/samples/facedetect/DetectionBasedTracker.java similarity index 96% rename from samples/android/face-detection/src/org/opencv/samples/fd/DetectionBasedTracker.java rename to samples/android/face-detection/src/org/opencv/samples/facedetect/DetectionBasedTracker.java index 9e46005438..6179f1bdc1 100644 --- a/samples/android/face-detection/src/org/opencv/samples/fd/DetectionBasedTracker.java +++ b/samples/android/face-detection/src/org/opencv/samples/facedetect/DetectionBasedTracker.java @@ -1,4 +1,4 @@ -package org.opencv.samples.fd; +package org.opencv.samples.facedetect; import org.opencv.core.Mat; import org.opencv.core.MatOfRect; diff --git a/samples/android/face-detection/src/org/opencv/samples/fd/FdActivity.java b/samples/android/face-detection/src/org/opencv/samples/facedetect/FdActivity.java similarity index 99% rename from samples/android/face-detection/src/org/opencv/samples/fd/FdActivity.java rename to samples/android/face-detection/src/org/opencv/samples/facedetect/FdActivity.java index 9470a8fd1f..2b949629cc 100644 --- a/samples/android/face-detection/src/org/opencv/samples/fd/FdActivity.java +++ b/samples/android/face-detection/src/org/opencv/samples/facedetect/FdActivity.java @@ -1,4 +1,4 @@ -package org.opencv.samples.fd; +package org.opencv.samples.facedetect; import java.io.File; import java.io.FileOutputStream; diff --git a/samples/android/face-detection/src/org/opencv/samples/fd/FpsMeter.java b/samples/android/face-detection/src/org/opencv/samples/facedetect/FpsMeter.java similarity index 97% rename from samples/android/face-detection/src/org/opencv/samples/fd/FpsMeter.java rename to samples/android/face-detection/src/org/opencv/samples/facedetect/FpsMeter.java index 2c8f3bc7b7..2438bf89ac 100644 --- a/samples/android/face-detection/src/org/opencv/samples/fd/FpsMeter.java +++ b/samples/android/face-detection/src/org/opencv/samples/facedetect/FpsMeter.java @@ -1,4 +1,4 @@ -package org.opencv.samples.fd; +package org.opencv.samples.facedetect; import java.text.DecimalFormat; From e5ffbf949814ef1810367878d6d3b367be5fe701 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Fri, 9 Nov 2012 07:53:31 +0400 Subject: [PATCH 05/11] Fix stream output operator for Vec This fixes output for 8U and 8S vector depths. They were mistakenly printed as characters instead of numbers. --- .../core/include/opencv2/core/operations.hpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp index 4b6e606165..847daf8c2d 100644 --- a/modules/core/include/opencv2/core/operations.hpp +++ b/modules/core/include/opencv2/core/operations.hpp @@ -3873,10 +3873,21 @@ template inline std::ostream& operator<<(std::ostream& out, const template inline std::ostream& operator<<(std::ostream& out, const Vec<_Tp, n>& vec) { out << "["; - for (int i = 0; i < n - 1; ++i) { - out << vec[i] << ", "; + + if(Vec<_Tp, n>::depth < CV_32F) + { + for (int i = 0; i < n - 1; ++i) { + out << (int)vec[i] << ", "; + } + out << (int)vec[n-1] << "]"; + } + else + { + for (int i = 0; i < n - 1; ++i) { + out << vec[i] << ", "; + } + out << vec[n-1] << "]"; } - out << vec[n-1] << "]"; return out; } From 8c9c2b3a032b6e50f9f0513c7d745d2f0d6cf4b3 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Thu, 8 Nov 2012 02:11:27 +0400 Subject: [PATCH 06/11] Fix build on Windows with OpenGl enabled There was missing windows.h include in OpenGL interop code. --- modules/core/src/opengl_interop.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/core/src/opengl_interop.cpp b/modules/core/src/opengl_interop.cpp index bf767148c0..3cbec2c01a 100644 --- a/modules/core/src/opengl_interop.cpp +++ b/modules/core/src/opengl_interop.cpp @@ -45,6 +45,14 @@ #include "opencv2/core/opengl_interop.hpp" #include "opencv2/core/gpumat.hpp" +#if defined WIN32 || defined _WIN32 || defined WINCE +#include +#undef small +#undef min +#undef max +#undef abs +#endif + #ifdef HAVE_OPENGL #ifdef __APPLE__ #include From b131dfeecd18d23270b39f9aedeb3e4d2fc02de0 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Wed, 7 Nov 2012 18:21:20 +0400 Subject: [PATCH 07/11] Build tutorial codes together with other samples These codes should be included into regular builds. --- modules/highgui/src/window.cpp | 50 ++++++++++ samples/cpp/CMakeLists.txt | 10 +- samples/cpp/Qt_sample/main.cpp | 52 ++++++---- .../HighGUI/AddingImagesTrackbar.cpp | 8 +- .../HighGUI/BasicLinearTransformsTrackbar.cpp | 8 +- .../video-input-psnr-ssim.cpp | 96 ++++++++++--------- .../HighGUI/video-write/video-write.cpp | 66 +++++++------ .../Histograms_Matching/EqualizeHist_Demo.cpp | 6 +- .../MatchTemplate_Demo.cpp | 8 +- .../calcBackProject_Demo1.cpp | 4 +- .../calcBackProject_Demo2.cpp | 4 +- .../Histograms_Matching/calcHist_Demo.cpp | 2 +- .../tutorial_code/ImgProc/AddingImages.cpp | 9 +- .../ImgProc/BasicLinearTransforms.cpp | 5 +- .../tutorial_code/ImgProc/Morphology_1.cpp | 7 +- .../tutorial_code/ImgProc/Morphology_2.cpp | 4 +- .../cpp/tutorial_code/ImgProc/Pyramids.cpp | 6 +- .../cpp/tutorial_code/ImgProc/Smoothing.cpp | 6 +- .../cpp/tutorial_code/ImgProc/Threshold.cpp | 10 +- .../ImgTrans/CannyDetector_Demo.cpp | 6 +- .../ImgTrans/Geometric_Transforms_Demo.cpp | 18 ++-- .../ImgTrans/HoughCircle_Demo.cpp | 2 +- .../ImgTrans/HoughLines_Demo.cpp | 8 +- .../tutorial_code/ImgTrans/Laplace_Demo.cpp | 6 +- .../cpp/tutorial_code/ImgTrans/Remap_Demo.cpp | 22 ++--- .../cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp | 6 +- .../ImgTrans/copyMakeBorder_demo.cpp | 9 +- .../tutorial_code/ImgTrans/filter2D_demo.cpp | 6 +- .../ShapeDescriptors/findContours_demo.cpp | 8 +- .../generalContours_demo1.cpp | 10 +- .../generalContours_demo2.cpp | 10 +- .../ShapeDescriptors/hull_demo.cpp | 12 +-- .../ShapeDescriptors/moments_demo.cpp | 20 ++-- .../pointPolygonTest_demo.cpp | 18 ++-- .../TrackingMotion/cornerDetector_Demo.cpp | 8 +- .../TrackingMotion/cornerHarris_Demo.cpp | 6 +- .../TrackingMotion/cornerSubPix_Demo.cpp | 8 +- .../goodFeaturesToTrack_Demo.cpp | 6 +- .../camera_calibration/camera_calibration.cpp | 56 +++++------ .../calib3d/stereoBM/SBM_Sample.cpp | 2 +- .../tutorial_code/contrib/retina_tutorial.cpp | 2 +- .../tutorial_code/core/Matrix/Drawing_1.cpp | 52 +++++----- .../tutorial_code/core/Matrix/Drawing_2.cpp | 5 +- .../discrete_fourier_transform.cpp | 2 +- .../file_input_output/file_input_output.cpp | 8 +- .../how_to_scan_images/how_to_scan_images.cpp | 4 +- .../interoperability_with_OpenCV_1.cpp | 2 +- .../mat_mask_operations.cpp | 2 +- .../mat_the_basic_image_container.cpp | 6 +- .../features2D/SURF_FlannMatcher.cpp | 2 +- .../features2D/SURF_Homography.cpp | 13 +-- .../features2D/SURF_descriptor.cpp | 4 +- .../features2D/SURF_detector.cpp | 2 +- .../gpu-basics-similarity.cpp | 20 ++-- .../windows_visual_studio_Opencv/Test.cpp | 8 +- .../ml/non_linear_svms/non_linear_svms.cpp | 2 +- .../objectDetection/objectDetection.cpp | 16 ++-- .../objectDetection/objectDetection2.cpp | 16 ++-- 58 files changed, 420 insertions(+), 354 deletions(-) diff --git a/modules/highgui/src/window.cpp b/modules/highgui/src/window.cpp index 9fe9bc781c..e6b3b1f7ab 100644 --- a/modules/highgui/src/window.cpp +++ b/modules/highgui/src/window.cpp @@ -571,6 +571,56 @@ int cv::createButton(const string& button_name, ButtonCallback on_change, void* return cvCreateButton(button_name.c_str(), on_change, userdata, button_type , initial_button_state ); } +#else + +CvFont cv::fontQt(const string&, int, Scalar, int, int, int) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); + return CvFont(); +} + +void cv::addText( const Mat&, const string&, Point, CvFont) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); +} + +void cv::displayStatusBar(const string&, const string&, int) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); +} + +void cv::displayOverlay(const string&, const string&, int ) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); +} + +int cv::startLoop(int (*)(int argc, char *argv[]), int , char**) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); + return 0; +} + +void cv::stopLoop() +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); +} + +void cv::saveWindowParameters(const string&) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); +} + +void cv::loadWindowParameters(const string&) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); +} + +int cv::createButton(const string&, ButtonCallback, void*, int , bool ) +{ + CV_Error(CV_StsNotImplemented, "The library is compiled without QT support"); + return 0; +} + #endif #if defined WIN32 || defined _WIN32 // see window_w32.cpp diff --git a/samples/cpp/CMakeLists.txt b/samples/cpp/CMakeLists.txt index c2b49a75ee..1ed0d2c6f0 100644 --- a/samples/cpp/CMakeLists.txt +++ b/samples/cpp/CMakeLists.txt @@ -53,7 +53,15 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) endif() ENDMACRO() - file(GLOB cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) + file(GLOB_RECURSE cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) + + if(NOT HAVE_OPENGL) + ocv_list_filterout(cpp_samples Qt_sample) + endif() + + if(NOT HAVE_opencv_gpu) + ocv_list_filterout(cpp_samples "/gpu/") + endif() foreach(sample_filename ${cpp_samples}) get_filename_component(sample ${sample_filename} NAME_WE) diff --git a/samples/cpp/Qt_sample/main.cpp b/samples/cpp/Qt_sample/main.cpp index 1576f6e821..f987de471a 100644 --- a/samples/cpp/Qt_sample/main.cpp +++ b/samples/cpp/Qt_sample/main.cpp @@ -4,14 +4,29 @@ #include #include - #include -#include + +#if defined WIN32 || defined _WIN32 || defined WINCE + #include + #undef small + #undef min + #undef max + #undef abs +#endif + +#ifdef __APPLE__ + #include +#else + #include +#endif + #include #include + using namespace std; using namespace cv; -void help() + +static void help() { cout << "\nThis demo demonstrates the use of the Qt enhanced version of the highgui GUI interface\n" " and dang if it doesn't throw in the use of of the POSIT 3D tracking algorithm too\n" @@ -29,7 +44,7 @@ void help() #define FOCAL_LENGTH 600 #define CUBE_SIZE 10 -void renderCube(float size) +static void renderCube(float size) { glBegin(GL_QUADS); // Front Face @@ -72,7 +87,7 @@ void renderCube(float size) } -void on_opengl(void* param) +static void on_opengl(void* param) { //Draw the object with the estimated pose glLoadIdentity(); @@ -87,7 +102,7 @@ void on_opengl(void* param) glDisable( GL_LIGHTING ); } -void initPOSIT(std::vector *modelPoints) +static void initPOSIT(std::vector *modelPoints) { //Create the model pointss modelPoints->push_back(cvPoint3D32f(0.0f, 0.0f, 0.0f)); //The first must be (0,0,0) @@ -96,7 +111,7 @@ void initPOSIT(std::vector *modelPoints) modelPoints->push_back(cvPoint3D32f(0.0f, CUBE_SIZE, 0.0f)); } -void foundCorners(vector *srcImagePoints,IplImage* source, IplImage* grayImage) +static void foundCorners(vector *srcImagePoints,IplImage* source, IplImage* grayImage) { cvCvtColor(source,grayImage,CV_RGB2GRAY); cvSmooth( grayImage, grayImage,CV_GAUSSIAN,11); @@ -116,12 +131,12 @@ void foundCorners(vector *srcImagePoints,IplImage* source, IplImag if (contours.size() == srcImagePoints_temp.size()) { - for(int i = 0 ; i *srcImagePoints,IplImage* source, IplImag //< y = 3 //get point 0; - int index = 0; - for(int i = 1 ; i srcImagePoints_temp.at(index).y) index = i; @@ -144,7 +159,7 @@ void foundCorners(vector *srcImagePoints,IplImage* source, IplImag //get point 1; index = 0; - for(int i = 1 ; i srcImagePoints_temp.at(index).x) index = i; @@ -153,7 +168,7 @@ void foundCorners(vector *srcImagePoints,IplImage* source, IplImag //get point 2; index = 0; - for(int i = 1 ; i *srcImagePoints,IplImage* source, IplImag //get point 3; index = 0; - for(int i = 1 ; i *srcImagePoints,IplImage* source, IplImag Mat Msource = source; stringstream ss; - for(int i = 0 ; iat(i),5,CV_RGB(255,0,0)); @@ -185,7 +200,7 @@ void foundCorners(vector *srcImagePoints,IplImage* source, IplImag } -void createOpenGLMatrixFrom(float *posePOSIT,const CvMatr32f &rotationMatrix, const CvVect32f &translationVector) +static void createOpenGLMatrixFrom(float *posePOSIT,const CvMatr32f &rotationMatrix, const CvVect32f &translationVector) { @@ -206,8 +221,9 @@ void createOpenGLMatrixFrom(float *posePOSIT,const CvMatr32f &rotationMatrix, co posePOSIT[15] = 1.0; } -int main(int argc, char *argv[]) +int main(void) { + help(); CvCapture* video = cvCaptureFromFile("cube4.avi"); CV_Assert(video); @@ -220,7 +236,7 @@ int main(int argc, char *argv[]) //For debug //cvNamedWindow("tempGray",CV_WINDOW_AUTOSIZE); float OpenGLMatrix[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; - cvCreateOpenGLCallback("POSIT",on_opengl,OpenGLMatrix); + cvSetOpenGlDrawCallback("POSIT",on_opengl,OpenGLMatrix); vector modelPoints; initPOSIT(&modelPoints); diff --git a/samples/cpp/tutorial_code/HighGUI/AddingImagesTrackbar.cpp b/samples/cpp/tutorial_code/HighGUI/AddingImagesTrackbar.cpp index a7acc6eed5..eb858a4728 100644 --- a/samples/cpp/tutorial_code/HighGUI/AddingImagesTrackbar.cpp +++ b/samples/cpp/tutorial_code/HighGUI/AddingImagesTrackbar.cpp @@ -4,8 +4,8 @@ * @author OpenCV team */ -#include -#include +#include "opencv2/highgui/highgui.hpp" +#include using namespace cv; @@ -24,7 +24,7 @@ Mat dst; * @function on_trackbar * @brief Callback for trackbar */ -void on_trackbar( int, void* ) +static void on_trackbar( int, void* ) { alpha = (double) alpha_slider/alpha_slider_max ; @@ -40,7 +40,7 @@ void on_trackbar( int, void* ) * @function main * @brief Main function */ -int main( int argc, char** argv ) +int main( void ) { /// Read image ( same size, same type ) src1 = imread("../images/LinuxLogo.jpg"); diff --git a/samples/cpp/tutorial_code/HighGUI/BasicLinearTransformsTrackbar.cpp b/samples/cpp/tutorial_code/HighGUI/BasicLinearTransformsTrackbar.cpp index 230b01d59f..b344c96e04 100644 --- a/samples/cpp/tutorial_code/HighGUI/BasicLinearTransformsTrackbar.cpp +++ b/samples/cpp/tutorial_code/HighGUI/BasicLinearTransformsTrackbar.cpp @@ -5,8 +5,7 @@ * @author OpenCV team */ -#include -#include +#include "opencv2/highgui/highgui.hpp" using namespace cv; @@ -18,13 +17,12 @@ int beta; /**< Simple brightness control*/ /** Matrices to store images */ Mat image; -Mat new_image; /** * @function on_trackbar * @brief Called whenever any of alpha or beta changes */ -void on_trackbar( int, void* ) +static void on_trackbar( int, void* ) { Mat new_image = Mat::zeros( image.size(), image.type() ); @@ -44,7 +42,7 @@ void on_trackbar( int, void* ) * @function main * @brief Main function */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Read image given by user image = imread( argv[1] ); diff --git a/samples/cpp/tutorial_code/HighGUI/video-input-psnr-ssim/video-input-psnr-ssim.cpp b/samples/cpp/tutorial_code/HighGUI/video-input-psnr-ssim/video-input-psnr-ssim.cpp index a81d9c2b3d..56f6e7dfa1 100644 --- a/samples/cpp/tutorial_code/HighGUI/video-input-psnr-ssim/video-input-psnr-ssim.cpp +++ b/samples/cpp/tutorial_code/HighGUI/video-input-psnr-ssim/video-input-psnr-ssim.cpp @@ -1,10 +1,10 @@ -#include // for standard I/O +#include // for standard I/O #include // for strings #include // for controlling float print precision #include // string to number conversion -#include // Gaussian Blur #include // Basic OpenCV structures (cv::Mat, Scalar) +#include // Gaussian Blur #include // OpenCV window I/O using namespace std; @@ -13,55 +13,57 @@ using namespace cv; double getPSNR ( const Mat& I1, const Mat& I2); Scalar getMSSIM( const Mat& I1, const Mat& I2); -void help() +static void help() { cout - << "\n--------------------------------------------------------------------------" << endl - << "This program shows how to read a video file with OpenCV. In addition, it tests the" - << " similarity of two input videos first with PSNR, and for the frames below a PSNR " << endl - << "trigger value, also with MSSIM."<< endl - << "Usage:" << endl + << "------------------------------------------------------------------------------" << endl + << "This program shows how to read a video file with OpenCV. In addition, it " + << "tests the similarity of two input videos first with PSNR, and for the frames " + << "below a PSNR trigger value, also with MSSIM." << endl + << "Usage:" << endl << "./video-source referenceVideo useCaseTestVideo PSNR_Trigger_Value Wait_Between_Frames " << endl - << "--------------------------------------------------------------------------" << endl + << "--------------------------------------------------------------------------" << endl << endl; } -int main(int argc, char *argv[], char *window_name) + +int main(int argc, char *argv[]) { help(); + if (argc != 5) { cout << "Not enough parameters" << endl; return -1; } + stringstream conv; - const string sourceReference = argv[1],sourceCompareWith = argv[2]; + const string sourceReference = argv[1], sourceCompareWith = argv[2]; int psnrTriggerValue, delay; - conv << argv[3] << endl << argv[4]; // put in the strings - conv >> psnrTriggerValue >> delay;// take out the numbers + conv << argv[3] << endl << argv[4]; // put in the strings + conv >> psnrTriggerValue >> delay; // take out the numbers char c; - int frameNum = -1; // Frame counter + int frameNum = -1; // Frame counter - VideoCapture captRefrnc(sourceReference), - captUndTst(sourceCompareWith); + VideoCapture captRefrnc(sourceReference), captUndTst(sourceCompareWith); - if ( !captRefrnc.isOpened()) + if (!captRefrnc.isOpened()) { cout << "Could not open reference " << sourceReference << endl; return -1; } - if( !captUndTst.isOpened()) + if (!captUndTst.isOpened()) { cout << "Could not open case test " << sourceCompareWith << endl; return -1; } Size refS = Size((int) captRefrnc.get(CV_CAP_PROP_FRAME_WIDTH), - (int) captRefrnc.get(CV_CAP_PROP_FRAME_HEIGHT)), - uTSi = Size((int) captUndTst.get(CV_CAP_PROP_FRAME_WIDTH), - (int) captUndTst.get(CV_CAP_PROP_FRAME_HEIGHT)); + (int) captRefrnc.get(CV_CAP_PROP_FRAME_HEIGHT)), + uTSi = Size((int) captUndTst.get(CV_CAP_PROP_FRAME_WIDTH), + (int) captUndTst.get(CV_CAP_PROP_FRAME_HEIGHT)); if (refS != uTSi) { @@ -73,43 +75,43 @@ int main(int argc, char *argv[], char *window_name) const char* WIN_RF = "Reference"; // Windows - namedWindow(WIN_RF, CV_WINDOW_AUTOSIZE ); - namedWindow(WIN_UT, CV_WINDOW_AUTOSIZE ); - cvMoveWindow(WIN_RF, 400 , 0); //750, 2 (bernat =0) - cvMoveWindow(WIN_UT, refS.width, 0); //1500, 2 + namedWindow(WIN_RF, CV_WINDOW_AUTOSIZE); + namedWindow(WIN_UT, CV_WINDOW_AUTOSIZE); + cvMoveWindow(WIN_RF, 400 , 0); //750, 2 (bernat =0) + cvMoveWindow(WIN_UT, refS.width, 0); //1500, 2 cout << "Reference frame resolution: Width=" << refS.width << " Height=" << refS.height - << " of nr#: " << captRefrnc.get(CV_CAP_PROP_FRAME_COUNT) << endl; + << " of nr#: " << captRefrnc.get(CV_CAP_PROP_FRAME_COUNT) << endl; - cout << "PSNR trigger value " << - setiosflags(ios::fixed) << setprecision(3) << psnrTriggerValue << endl; + cout << "PSNR trigger value " << setiosflags(ios::fixed) << setprecision(3) + << psnrTriggerValue << endl; Mat frameReference, frameUnderTest; double psnrV; Scalar mssimV; - while( true) //Show the image captured in the window and repeat + for(;;) //Show the image captured in the window and repeat { captRefrnc >> frameReference; captUndTst >> frameUnderTest; - if( frameReference.empty() || frameUnderTest.empty()) + if (frameReference.empty() || frameUnderTest.empty()) { cout << " < < < Game over! > > > "; break; } ++frameNum; - cout <<"Frame:" << frameNum <<"# "; + cout << "Frame: " << frameNum << "# "; ///////////////////////////////// PSNR //////////////////////////////////////////////////// - psnrV = getPSNR(frameReference,frameUnderTest); //get PSNR + psnrV = getPSNR(frameReference,frameUnderTest); cout << setiosflags(ios::fixed) << setprecision(3) << psnrV << "dB"; //////////////////////////////////// MSSIM ///////////////////////////////////////////////// if (psnrV < psnrTriggerValue && psnrV) { - mssimV = getMSSIM(frameReference,frameUnderTest); + mssimV = getMSSIM(frameReference, frameUnderTest); cout << " MSSIM: " << " R " << setiosflags(ios::fixed) << setprecision(2) << mssimV.val[2] * 100 << "%" @@ -120,10 +122,10 @@ int main(int argc, char *argv[], char *window_name) cout << endl; ////////////////////////////////// Show Image ///////////////////////////////////////////// - imshow( WIN_RF, frameReference); - imshow( WIN_UT, frameUnderTest); + imshow(WIN_RF, frameReference); + imshow(WIN_UT, frameUnderTest); - c = cvWaitKey(delay); + c = (char)cvWaitKey(delay); if (c == 27) break; } @@ -137,7 +139,7 @@ double getPSNR(const Mat& I1, const Mat& I2) s1.convertTo(s1, CV_32F); // cannot make a square on 8 bits s1 = s1.mul(s1); // |I1 - I2|^2 - Scalar s = sum(s1); // sum elements per channel + Scalar s = sum(s1); // sum elements per channel double sse = s.val[0] + s.val[1] + s.val[2]; // sum channels @@ -145,8 +147,8 @@ double getPSNR(const Mat& I1, const Mat& I2) return 0; else { - double mse =sse /(double)(I1.channels() * I1.total()); - double psnr = 10.0*log10((255*255)/mse); + double mse = sse / (double)(I1.channels() * I1.total()); + double psnr = 10.0 * log10((255 * 255) / mse); return psnr; } } @@ -155,10 +157,10 @@ Scalar getMSSIM( const Mat& i1, const Mat& i2) { const double C1 = 6.5025, C2 = 58.5225; /***************************** INITS **********************************/ - int d = CV_32F; + int d = CV_32F; Mat I1, I2; - i1.convertTo(I1, d); // cannot calculate on one byte large values + i1.convertTo(I1, d); // cannot calculate on one byte large values i2.convertTo(I2, d); Mat I2_2 = I2.mul(I2); // I2^2 @@ -167,7 +169,7 @@ Scalar getMSSIM( const Mat& i1, const Mat& i2) /*************************** END INITS **********************************/ - Mat mu1, mu2; // PRELIMINARY COMPUTING + Mat mu1, mu2; // PRELIMINARY COMPUTING GaussianBlur(I1, mu1, Size(11, 11), 1.5); GaussianBlur(I2, mu2, Size(11, 11), 1.5); @@ -191,15 +193,15 @@ Scalar getMSSIM( const Mat& i1, const Mat& i2) t1 = 2 * mu1_mu2 + C1; t2 = 2 * sigma12 + C2; - t3 = t1.mul(t2); // t3 = ((2*mu1_mu2 + C1).*(2*sigma12 + C2)) + t3 = t1.mul(t2); // t3 = ((2*mu1_mu2 + C1).*(2*sigma12 + C2)) t1 = mu1_2 + mu2_2 + C1; t2 = sigma1_2 + sigma2_2 + C2; - t1 = t1.mul(t2); // t1 =((mu1_2 + mu2_2 + C1).*(sigma1_2 + sigma2_2 + C2)) + t1 = t1.mul(t2); // t1 =((mu1_2 + mu2_2 + C1).*(sigma1_2 + sigma2_2 + C2)) Mat ssim_map; - divide(t3, t1, ssim_map); // ssim_map = t3./t1; + divide(t3, t1, ssim_map); // ssim_map = t3./t1; - Scalar mssim = mean( ssim_map ); // mssim = average of ssim map + Scalar mssim = mean(ssim_map); // mssim = average of ssim map return mssim; -} \ No newline at end of file +} diff --git a/samples/cpp/tutorial_code/HighGUI/video-write/video-write.cpp b/samples/cpp/tutorial_code/HighGUI/video-write/video-write.cpp index d555718291..8ee99a10aa 100644 --- a/samples/cpp/tutorial_code/HighGUI/video-write/video-write.cpp +++ b/samples/cpp/tutorial_code/HighGUI/video-write/video-write.cpp @@ -7,51 +7,53 @@ using namespace std; using namespace cv; -void help() +static void help() { cout - << "\n--------------------------------------------------------------------------" << endl - << "This program shows how to write video files. You can extract the R or G or B color channel " - << " of the input video.write " << endl - << "Usage:" << endl - << "./video-write inputvideoName [ R | G | B] [Y | N]" << endl - << "--------------------------------------------------------------------------" << endl + << "------------------------------------------------------------------------------" << endl + << "This program shows how to write video files." << endl + << "You can extract the R or G or B color channel of the input video." << endl + << "Usage:" << endl + << "./video-write inputvideoName [ R | G | B] [Y | N]" << endl + << "------------------------------------------------------------------------------" << endl << endl; } -int main(int argc, char *argv[], char *window_name) + +int main(int argc, char *argv[]) { help(); + if (argc != 4) { cout << "Not enough parameters" << endl; return -1; } - const string source = argv[1]; // the source file name + const string source = argv[1]; // the source file name const bool askOutputType = argv[3][0] =='Y'; // If false it will use the inputs codec type - VideoCapture inputVideo(source); // Open input - if ( !inputVideo.isOpened()) + VideoCapture inputVideo(source); // Open input + if (!inputVideo.isOpened()) { - cout << "Could not open the input video." << source << endl; + cout << "Could not open the input video: " << source << endl; return -1; } - string::size_type pAt = source.find_last_of('.'); // Find extension point + string::size_type pAt = source.find_last_of('.'); // Find extension point const string NAME = source.substr(0, pAt) + argv[2][0] + ".avi"; // Form the new name with container int ex = static_cast(inputVideo.get(CV_CAP_PROP_FOURCC)); // Get Codec Type- Int form // Transform from int to char via Bitwise operators - char EXT[] = {ex & 0XFF , (ex & 0XFF00) >> 8,(ex & 0XFF0000) >> 16,(ex & 0XFF000000) >> 24, 0}; + char EXT[] = {(char)(ex & 0XFF) , (char)((ex & 0XFF00) >> 8),(char)((ex & 0XFF0000) >> 16),(char)((ex & 0XFF000000) >> 24), 0}; - Size S = Size((int) inputVideo.get(CV_CAP_PROP_FRAME_WIDTH), //Acquire input size + Size S = Size((int) inputVideo.get(CV_CAP_PROP_FRAME_WIDTH), // Acquire input size (int) inputVideo.get(CV_CAP_PROP_FRAME_HEIGHT)); VideoWriter outputVideo; // Open the output if (askOutputType) - outputVideo.open(NAME , ex=-1, inputVideo.get(CV_CAP_PROP_FPS),S, true); + outputVideo.open(NAME, ex=-1, inputVideo.get(CV_CAP_PROP_FPS), S, true); else - outputVideo.open(NAME , ex, inputVideo.get(CV_CAP_PROP_FPS),S, true); + outputVideo.open(NAME, ex, inputVideo.get(CV_CAP_PROP_FPS), S, true); if (!outputVideo.isOpened()) { @@ -59,33 +61,29 @@ int main(int argc, char *argv[], char *window_name) return -1; } - union { int v; char c[5];} uEx ; - uEx.v = ex; // From Int to char via union - uEx.c[4]='\0'; - cout << "Input frame resolution: Width=" << S.width << " Height=" << S.height - << " of nr#: " << inputVideo.get(CV_CAP_PROP_FRAME_COUNT) << endl; + << " of nr#: " << inputVideo.get(CV_CAP_PROP_FRAME_COUNT) << endl; cout << "Input codec type: " << EXT << endl; - int channel = 2; // Select the channel to save + int channel = 2; // Select the channel to save switch(argv[2][0]) { - case 'R' : {channel = 2; break;} - case 'G' : {channel = 1; break;} - case 'B' : {channel = 0; break;} + case 'R' : channel = 2; break; + case 'G' : channel = 1; break; + case 'B' : channel = 0; break; } - Mat src,res; + Mat src, res; vector spl; - while( true) //Show the image captured in the window and repeat + for(;;) //Show the image captured in the window and repeat { inputVideo >> src; // read - if( src.empty()) break; // check if at end + if (src.empty()) break; // check if at end - split(src, spl); // process - extract only the correct channel - for( int i =0; i < 3; ++i) - if (i != channel) - spl[i] = Mat::zeros(S, spl[0].type()); + split(src, spl); // process - extract only the correct channel + for (int i =0; i < 3; ++i) + if (i != channel) + spl[i] = Mat::zeros(S, spl[0].type()); merge(spl, res); //outputVideo.write(res); //save or @@ -94,4 +92,4 @@ int main(int argc, char *argv[], char *window_name) cout << "Finished writing" << endl; return 0; -} \ No newline at end of file +} diff --git a/samples/cpp/tutorial_code/Histograms_Matching/EqualizeHist_Demo.cpp b/samples/cpp/tutorial_code/Histograms_Matching/EqualizeHist_Demo.cpp index ff51cdf6b8..49e4be0e54 100644 --- a/samples/cpp/tutorial_code/Histograms_Matching/EqualizeHist_Demo.cpp +++ b/samples/cpp/tutorial_code/Histograms_Matching/EqualizeHist_Demo.cpp @@ -15,12 +15,12 @@ using namespace std; /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { Mat src, dst; - char* source_window = "Source image"; - char* equalized_window = "Equalized Image"; + const char* source_window = "Source image"; + const char* equalized_window = "Equalized Image"; /// Load image src = imread( argv[1], 1 ); diff --git a/samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp b/samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp index 2522f1c04d..e3633576f8 100644 --- a/samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp +++ b/samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp @@ -14,8 +14,8 @@ using namespace cv; /// Global Variables Mat img; Mat templ; Mat result; -char* image_window = "Source Image"; -char* result_window = "Result window"; +const char* image_window = "Source Image"; +const char* result_window = "Result window"; int match_method; int max_Trackbar = 5; @@ -26,7 +26,7 @@ void MatchingMethod( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load image and template img = imread( argv[1], 1 ); @@ -37,7 +37,7 @@ int main( int argc, char** argv ) namedWindow( result_window, CV_WINDOW_AUTOSIZE ); /// Create Trackbar - char* trackbar_label = "Method: \n 0: SQDIFF \n 1: SQDIFF NORMED \n 2: TM CCORR \n 3: TM CCORR NORMED \n 4: TM COEFF \n 5: TM COEFF NORMED"; + const char* trackbar_label = "Method: \n 0: SQDIFF \n 1: SQDIFF NORMED \n 2: TM CCORR \n 3: TM CCORR NORMED \n 4: TM COEFF \n 5: TM COEFF NORMED"; createTrackbar( trackbar_label, image_window, &match_method, max_Trackbar, MatchingMethod ); MatchingMethod( 0, 0 ); diff --git a/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo1.cpp b/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo1.cpp index 2e6fcc0d8a..f422603749 100644 --- a/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo1.cpp +++ b/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo1.cpp @@ -23,7 +23,7 @@ void Hist_and_Backproj(int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Read the image src = imread( argv[1], 1 ); @@ -36,7 +36,7 @@ int main( int argc, char** argv ) mixChannels( &hsv, 1, &hue, 1, ch, 1 ); /// Create Trackbar to enter the number of bins - char* window_image = "Source image"; + const char* window_image = "Source image"; namedWindow( window_image, CV_WINDOW_AUTOSIZE ); createTrackbar("* Hue bins: ", window_image, &bins, 180, Hist_and_Backproj ); Hist_and_Backproj(0, 0); diff --git a/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo2.cpp b/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo2.cpp index 7d53af391b..42dd01a671 100644 --- a/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo2.cpp +++ b/samples/cpp/tutorial_code/Histograms_Matching/calcBackProject_Demo2.cpp @@ -17,7 +17,7 @@ Mat src; Mat hsv; Mat mask; int lo = 20; int up = 20; -char* window_image = "Source image"; +const char* window_image = "Source image"; /// Function Headers void Hist_and_Backproj( ); @@ -26,7 +26,7 @@ void pickPoint (int event, int x, int y, int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Read the image src = imread( argv[1], 1 ); diff --git a/samples/cpp/tutorial_code/Histograms_Matching/calcHist_Demo.cpp b/samples/cpp/tutorial_code/Histograms_Matching/calcHist_Demo.cpp index e010c6ac05..d3af5e7a96 100644 --- a/samples/cpp/tutorial_code/Histograms_Matching/calcHist_Demo.cpp +++ b/samples/cpp/tutorial_code/Histograms_Matching/calcHist_Demo.cpp @@ -15,7 +15,7 @@ using namespace cv; /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { Mat src, dst; diff --git a/samples/cpp/tutorial_code/ImgProc/AddingImages.cpp b/samples/cpp/tutorial_code/ImgProc/AddingImages.cpp index 40056ad4f0..4e974275c6 100644 --- a/samples/cpp/tutorial_code/ImgProc/AddingImages.cpp +++ b/samples/cpp/tutorial_code/ImgProc/AddingImages.cpp @@ -4,8 +4,7 @@ * @author OpenCV team */ -#include -#include +#include "opencv2/highgui/highgui.hpp" #include using namespace cv; @@ -14,7 +13,7 @@ using namespace cv; * @function main * @brief Main function */ -int main( int argc, char** argv ) +int main( void ) { double alpha = 0.5; double beta; double input; @@ -35,8 +34,8 @@ int main( int argc, char** argv ) src1 = imread("../images/LinuxLogo.jpg"); src2 = imread("../images/WindowsLogo.jpg"); - if( !src1.data ) { printf("Error loading src1 \n"); return -1; } - if( !src2.data ) { printf("Error loading src2 \n"); return -1; } + if( !src1.data ) { std::cout<< "Error loading src1"< -#include +#include "opencv2/highgui/highgui.hpp" #include using namespace cv; @@ -17,7 +16,7 @@ int beta; /**< Simple brightness control */ * @function main * @brief Main function */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Read image given by user Mat image = imread( argv[1] ); diff --git a/samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp b/samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp index 61f1cf06f0..47030fa4f4 100644 --- a/samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp +++ b/samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp @@ -6,7 +6,6 @@ #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" -#include "highgui.h" #include #include @@ -29,7 +28,7 @@ void Dilation( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load an image src = imread( argv[1] ); @@ -73,7 +72,7 @@ int main( int argc, char** argv ) */ void Erosion( int, void* ) { - int erosion_type; + int erosion_type = 0; if( erosion_elem == 0 ){ erosion_type = MORPH_RECT; } else if( erosion_elem == 1 ){ erosion_type = MORPH_CROSS; } else if( erosion_elem == 2) { erosion_type = MORPH_ELLIPSE; } @@ -91,7 +90,7 @@ void Erosion( int, void* ) */ void Dilation( int, void* ) { - int dilation_type; + int dilation_type = 0; if( dilation_elem == 0 ){ dilation_type = MORPH_RECT; } else if( dilation_elem == 1 ){ dilation_type = MORPH_CROSS; } else if( dilation_elem == 2) { dilation_type = MORPH_ELLIPSE; } diff --git a/samples/cpp/tutorial_code/ImgProc/Morphology_2.cpp b/samples/cpp/tutorial_code/ImgProc/Morphology_2.cpp index ab1cc9457d..c501bfd328 100644 --- a/samples/cpp/tutorial_code/ImgProc/Morphology_2.cpp +++ b/samples/cpp/tutorial_code/ImgProc/Morphology_2.cpp @@ -21,7 +21,7 @@ int const max_operator = 4; int const max_elem = 2; int const max_kernel_size = 21; -char* window_name = "Morphology Transformations Demo"; +const char* window_name = "Morphology Transformations Demo"; /** Function Headers */ @@ -30,7 +30,7 @@ void Morphology_Operations( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load an image src = imread( argv[1] ); diff --git a/samples/cpp/tutorial_code/ImgProc/Pyramids.cpp b/samples/cpp/tutorial_code/ImgProc/Pyramids.cpp index 825fb4b478..d0cae3c4f6 100644 --- a/samples/cpp/tutorial_code/ImgProc/Pyramids.cpp +++ b/samples/cpp/tutorial_code/ImgProc/Pyramids.cpp @@ -15,13 +15,13 @@ using namespace cv; /// Global variables Mat src, dst, tmp; -char* window_name = "Pyramids Demo"; +const char* window_name = "Pyramids Demo"; /** * @function main */ -int main( int argc, char** argv ) +int main( void ) { /// General instructions printf( "\n Zoom In-Out demo \n " ); @@ -44,7 +44,7 @@ int main( int argc, char** argv ) imshow( window_name, dst ); /// Loop - while( true ) + for(;;) { int c; c = waitKey(10); diff --git a/samples/cpp/tutorial_code/ImgProc/Smoothing.cpp b/samples/cpp/tutorial_code/ImgProc/Smoothing.cpp index d541a4334f..5f51d07d29 100644 --- a/samples/cpp/tutorial_code/ImgProc/Smoothing.cpp +++ b/samples/cpp/tutorial_code/ImgProc/Smoothing.cpp @@ -22,14 +22,14 @@ Mat src; Mat dst; char window_name[] = "Smoothing Demo"; /// Function headers -int display_caption( char* caption ); +int display_caption( const char* caption ); int display_dst( int delay ); /** * function main */ -int main( int argc, char** argv ) +int main( void ) { namedWindow( window_name, CV_WINDOW_AUTOSIZE ); @@ -84,7 +84,7 @@ int main( int argc, char** argv ) /** * @function display_caption */ -int display_caption( char* caption ) +int display_caption( const char* caption ) { dst = Mat::zeros( src.size(), src.type() ); putText( dst, caption, diff --git a/samples/cpp/tutorial_code/ImgProc/Threshold.cpp b/samples/cpp/tutorial_code/ImgProc/Threshold.cpp index c20aa2359f..7505ec297b 100644 --- a/samples/cpp/tutorial_code/ImgProc/Threshold.cpp +++ b/samples/cpp/tutorial_code/ImgProc/Threshold.cpp @@ -20,10 +20,10 @@ int const max_type = 4; int const max_BINARY_value = 255; Mat src, src_gray, dst; -char* window_name = "Threshold Demo"; +const char* window_name = "Threshold Demo"; -char* trackbar_type = "Type: \n 0: Binary \n 1: Binary Inverted \n 2: Truncate \n 3: To Zero \n 4: To Zero Inverted"; -char* trackbar_value = "Value"; +const char* trackbar_type = "Type: \n 0: Binary \n 1: Binary Inverted \n 2: Truncate \n 3: To Zero \n 4: To Zero Inverted"; +const char* trackbar_value = "Value"; /// Function headers void Threshold_Demo( int, void* ); @@ -31,7 +31,7 @@ void Threshold_Demo( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load an image src = imread( argv[1], 1 ); @@ -55,7 +55,7 @@ int main( int argc, char** argv ) Threshold_Demo( 0, 0 ); /// Wait until user finishes program - while(true) + for(;;) { int c; c = waitKey( 20 ); diff --git a/samples/cpp/tutorial_code/ImgTrans/CannyDetector_Demo.cpp b/samples/cpp/tutorial_code/ImgTrans/CannyDetector_Demo.cpp index 9dc6ea0837..c798f2fb42 100644 --- a/samples/cpp/tutorial_code/ImgTrans/CannyDetector_Demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/CannyDetector_Demo.cpp @@ -21,13 +21,13 @@ int lowThreshold; int const max_lowThreshold = 100; int ratio = 3; int kernel_size = 3; -char* window_name = "Edge Map"; +const char* window_name = "Edge Map"; /** * @function CannyThreshold * @brief Trackbar callback - Canny thresholds input with a ratio 1:3 */ -void CannyThreshold(int, void*) +static void CannyThreshold(int, void*) { /// Reduce noise with a kernel 3x3 blur( src_gray, detected_edges, Size(3,3) ); @@ -46,7 +46,7 @@ void CannyThreshold(int, void*) /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load an image src = imread( argv[1] ); diff --git a/samples/cpp/tutorial_code/ImgTrans/Geometric_Transforms_Demo.cpp b/samples/cpp/tutorial_code/ImgTrans/Geometric_Transforms_Demo.cpp index 28422b8821..2d18357202 100644 --- a/samples/cpp/tutorial_code/ImgTrans/Geometric_Transforms_Demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/Geometric_Transforms_Demo.cpp @@ -13,14 +13,14 @@ using namespace cv; using namespace std; /// Global variables -char* source_window = "Source image"; -char* warp_window = "Warp"; -char* warp_rotate_window = "Warp + Rotate"; +const char* source_window = "Source image"; +const char* warp_window = "Warp"; +const char* warp_rotate_window = "Warp + Rotate"; /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { Point2f srcTri[3]; Point2f dstTri[3]; @@ -37,12 +37,12 @@ int main( int argc, char** argv ) /// Set your 3 points to calculate the Affine Transform srcTri[0] = Point2f( 0,0 ); - srcTri[1] = Point2f( src.cols - 1, 0 ); - srcTri[2] = Point2f( 0, src.rows - 1 ); + srcTri[1] = Point2f( src.cols - 1.f, 0 ); + srcTri[2] = Point2f( 0, src.rows - 1.f ); - dstTri[0] = Point2f( src.cols*0.0, src.rows*0.33 ); - dstTri[1] = Point2f( src.cols*0.85, src.rows*0.25 ); - dstTri[2] = Point2f( src.cols*0.15, src.rows*0.7 ); + dstTri[0] = Point2f( src.cols*0.0f, src.rows*0.33f ); + dstTri[1] = Point2f( src.cols*0.85f, src.rows*0.25f ); + dstTri[2] = Point2f( src.cols*0.15f, src.rows*0.7f ); /// Get the Affine Transform warp_mat = getAffineTransform( srcTri, dstTri ); diff --git a/samples/cpp/tutorial_code/ImgTrans/HoughCircle_Demo.cpp b/samples/cpp/tutorial_code/ImgTrans/HoughCircle_Demo.cpp index ec17fdaae0..71d37fb7ac 100644 --- a/samples/cpp/tutorial_code/ImgTrans/HoughCircle_Demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/HoughCircle_Demo.cpp @@ -14,7 +14,7 @@ using namespace cv; /** * @function main */ -int main(int argc, char** argv) +int main(int, char** argv) { Mat src, src_gray; diff --git a/samples/cpp/tutorial_code/ImgTrans/HoughLines_Demo.cpp b/samples/cpp/tutorial_code/ImgTrans/HoughLines_Demo.cpp index 56a4a94b59..561948a581 100644 --- a/samples/cpp/tutorial_code/ImgTrans/HoughLines_Demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/HoughLines_Demo.cpp @@ -21,8 +21,8 @@ Mat standard_hough, probabilistic_hough; int min_threshold = 50; int max_trackbar = 150; -char* standard_name = "Standard Hough Lines Demo"; -char* probabilistic_name = "Probabilistic Hough Lines Demo"; +const char* standard_name = "Standard Hough Lines Demo"; +const char* probabilistic_name = "Probabilistic Hough Lines Demo"; int s_trackbar = max_trackbar; int p_trackbar = max_trackbar; @@ -35,7 +35,7 @@ void Probabilistic_Hough( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Read the image src = imread( argv[1], 1 ); @@ -91,7 +91,7 @@ void Standard_Hough( int, void* ) HoughLines( edges, s_lines, 1, CV_PI/180, min_threshold + s_trackbar, 0, 0 ); /// Show the result - for( int i = 0; i < s_lines.size(); i++ ) + for( size_t i = 0; i < s_lines.size(); i++ ) { float r = s_lines[i][0], t = s_lines[i][1]; double cos_t = cos(t), sin_t = sin(t); diff --git a/samples/cpp/tutorial_code/ImgTrans/Laplace_Demo.cpp b/samples/cpp/tutorial_code/ImgTrans/Laplace_Demo.cpp index 5f996fff38..279dc6dcb6 100644 --- a/samples/cpp/tutorial_code/ImgTrans/Laplace_Demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/Laplace_Demo.cpp @@ -14,7 +14,7 @@ using namespace cv; /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { Mat src, src_gray, dst; @@ -22,9 +22,7 @@ int main( int argc, char** argv ) int scale = 1; int delta = 0; int ddepth = CV_16S; - char* window_name = "Laplace Demo"; - - int c; + const char* window_name = "Laplace Demo"; /// Load an image src = imread( argv[1] ); diff --git a/samples/cpp/tutorial_code/ImgTrans/Remap_Demo.cpp b/samples/cpp/tutorial_code/ImgTrans/Remap_Demo.cpp index de58e984bb..40e5118a6d 100644 --- a/samples/cpp/tutorial_code/ImgTrans/Remap_Demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/Remap_Demo.cpp @@ -14,7 +14,7 @@ using namespace cv; /// Global variables Mat src, dst; Mat map_x, map_y; -char* remap_window = "Remap demo"; +const char* remap_window = "Remap demo"; int ind = 0; /// Function Headers @@ -23,7 +23,7 @@ void update_map( void ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load the image src = imread( argv[1], 1 ); @@ -37,7 +37,7 @@ int main( int argc, char** argv ) namedWindow( remap_window, CV_WINDOW_AUTOSIZE ); /// Loop - while( true ) + for(;;) { /// Each 1 sec. Press ESC to exit the program int c = waitKey( 1000 ); @@ -71,8 +71,8 @@ void update_map( void ) case 0: if( i > src.cols*0.25 && i < src.cols*0.75 && j > src.rows*0.25 && j < src.rows*0.75 ) { - map_x.at(j,i) = 2*( i - src.cols*0.25 ) + 0.5 ; - map_y.at(j,i) = 2*( j - src.rows*0.25 ) + 0.5 ; + map_x.at(j,i) = 2*( i - src.cols*0.25f ) + 0.5f ; + map_y.at(j,i) = 2*( j - src.rows*0.25f ) + 0.5f ; } else { map_x.at(j,i) = 0 ; @@ -80,16 +80,16 @@ void update_map( void ) } break; case 1: - map_x.at(j,i) = i ; - map_y.at(j,i) = src.rows - j ; + map_x.at(j,i) = (float)i ; + map_y.at(j,i) = (float)(src.rows - j) ; break; case 2: - map_x.at(j,i) = src.cols - i ; - map_y.at(j,i) = j ; + map_x.at(j,i) = (float)(src.cols - i) ; + map_y.at(j,i) = (float)j ; break; case 3: - map_x.at(j,i) = src.cols - i ; - map_y.at(j,i) = src.rows - j ; + map_x.at(j,i) = (float)(src.cols - i) ; + map_y.at(j,i) = (float)(src.rows - j) ; break; } // end of switch } diff --git a/samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp b/samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp index 0af569fa7c..0ac9eb1a30 100644 --- a/samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp @@ -14,18 +14,16 @@ using namespace cv; /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { Mat src, src_gray; Mat grad; - char* window_name = "Sobel Demo - Simple Edge Detector"; + const char* window_name = "Sobel Demo - Simple Edge Detector"; int scale = 1; int delta = 0; int ddepth = CV_16S; - int c; - /// Load an image src = imread( argv[1] ); diff --git a/samples/cpp/tutorial_code/ImgTrans/copyMakeBorder_demo.cpp b/samples/cpp/tutorial_code/ImgTrans/copyMakeBorder_demo.cpp index b90a175776..4b2783e31c 100644 --- a/samples/cpp/tutorial_code/ImgTrans/copyMakeBorder_demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/copyMakeBorder_demo.cpp @@ -16,13 +16,13 @@ Mat src, dst; int top, bottom, left, right; int borderType; Scalar value; -char* window_name = "copyMakeBorder Demo"; +const char* window_name = "copyMakeBorder Demo"; RNG rng(12345); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { int c; @@ -31,8 +31,9 @@ int main( int argc, char** argv ) src = imread( argv[1] ); if( !src.data ) - { return -1; + { printf(" No data entered, please enter the path to an image file \n"); + return -1; } /// Brief how-to for this program @@ -52,7 +53,7 @@ int main( int argc, char** argv ) imshow( window_name, dst ); - while( true ) + for(;;) { c = waitKey(500); diff --git a/samples/cpp/tutorial_code/ImgTrans/filter2D_demo.cpp b/samples/cpp/tutorial_code/ImgTrans/filter2D_demo.cpp index 86158d9131..7a8dc768cf 100644 --- a/samples/cpp/tutorial_code/ImgTrans/filter2D_demo.cpp +++ b/samples/cpp/tutorial_code/ImgTrans/filter2D_demo.cpp @@ -14,7 +14,7 @@ using namespace cv; /** * @function main */ -int main ( int argc, char** argv ) +int main ( int, char** argv ) { /// Declare variables Mat src, dst; @@ -24,7 +24,7 @@ int main ( int argc, char** argv ) double delta; int ddepth; int kernel_size; - char* window_name = "filter2D Demo"; + const char* window_name = "filter2D Demo"; int c; @@ -44,7 +44,7 @@ int main ( int argc, char** argv ) /// Loop - Will filter the image with different kernel sizes each 0.5 seconds int ind = 0; - while( true ) + for(;;) { c = waitKey(500); /// Press 'ESC' to exit the program diff --git a/samples/cpp/tutorial_code/ShapeDescriptors/findContours_demo.cpp b/samples/cpp/tutorial_code/ShapeDescriptors/findContours_demo.cpp index 0eeb3b621a..e301476ee7 100644 --- a/samples/cpp/tutorial_code/ShapeDescriptors/findContours_demo.cpp +++ b/samples/cpp/tutorial_code/ShapeDescriptors/findContours_demo.cpp @@ -24,7 +24,7 @@ void thresh_callback(int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); @@ -34,7 +34,7 @@ int main( int argc, char** argv ) blur( src_gray, src_gray, Size(3,3) ); /// Create Window - char* source_window = "Source"; + const char* source_window = "Source"; namedWindow( source_window, CV_WINDOW_AUTOSIZE ); imshow( source_window, src ); @@ -61,10 +61,10 @@ void thresh_callback(int, void* ) /// Draw contours Mat drawing = Mat::zeros( canny_output.size(), CV_8UC3 ); - for( int i = 0; i< contours.size(); i++ ) + for( size_t i = 0; i< contours.size(); i++ ) { Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); - drawContours( drawing, contours, i, color, 2, 8, hierarchy, 0, Point() ); + drawContours( drawing, contours, (int)i, color, 2, 8, hierarchy, 0, Point() ); } /// Show in a window diff --git a/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo1.cpp b/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo1.cpp index d1de8ac310..b973cfd973 100644 --- a/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo1.cpp +++ b/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo1.cpp @@ -24,7 +24,7 @@ void thresh_callback(int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); @@ -34,7 +34,7 @@ int main( int argc, char** argv ) blur( src_gray, src_gray, Size(3,3) ); /// Create Window - char* source_window = "Source"; + const char* source_window = "Source"; namedWindow( source_window, CV_WINDOW_AUTOSIZE ); imshow( source_window, src ); @@ -65,7 +65,7 @@ void thresh_callback(int, void* ) vectorcenter( contours.size() ); vectorradius( contours.size() ); - for( int i = 0; i < contours.size(); i++ ) + for( size_t i = 0; i < contours.size(); i++ ) { approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true ); boundRect[i] = boundingRect( Mat(contours_poly[i]) ); minEnclosingCircle( contours_poly[i], center[i], radius[i] ); @@ -74,10 +74,10 @@ void thresh_callback(int, void* ) /// Draw polygonal contour + bonding rects + circles Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 ); - for( int i = 0; i< contours.size(); i++ ) + for( size_t i = 0; i< contours.size(); i++ ) { Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); - drawContours( drawing, contours_poly, i, color, 1, 8, vector(), 0, Point() ); + drawContours( drawing, contours_poly, (int)i, color, 1, 8, vector(), 0, Point() ); rectangle( drawing, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0 ); circle( drawing, center[i], (int)radius[i], color, 2, 8, 0 ); } diff --git a/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo2.cpp b/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo2.cpp index 657b46441e..70d8663c9b 100644 --- a/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo2.cpp +++ b/samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo2.cpp @@ -24,7 +24,7 @@ void thresh_callback(int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); @@ -34,7 +34,7 @@ int main( int argc, char** argv ) blur( src_gray, src_gray, Size(3,3) ); /// Create Window - char* source_window = "Source"; + const char* source_window = "Source"; namedWindow( source_window, CV_WINDOW_AUTOSIZE ); imshow( source_window, src ); @@ -63,7 +63,7 @@ void thresh_callback(int, void* ) vector minRect( contours.size() ); vector minEllipse( contours.size() ); - for( int i = 0; i < contours.size(); i++ ) + for( size_t i = 0; i < contours.size(); i++ ) { minRect[i] = minAreaRect( Mat(contours[i]) ); if( contours[i].size() > 5 ) { minEllipse[i] = fitEllipse( Mat(contours[i]) ); } @@ -71,11 +71,11 @@ void thresh_callback(int, void* ) /// Draw contours + rotated rects + ellipses Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 ); - for( int i = 0; i< contours.size(); i++ ) + for( size_t i = 0; i< contours.size(); i++ ) { Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); // contour - drawContours( drawing, contours, i, color, 1, 8, vector(), 0, Point() ); + drawContours( drawing, contours, (int)i, color, 1, 8, vector(), 0, Point() ); // ellipse ellipse( drawing, minEllipse[i], color, 2, 8 ); // rotated rectangle diff --git a/samples/cpp/tutorial_code/ShapeDescriptors/hull_demo.cpp b/samples/cpp/tutorial_code/ShapeDescriptors/hull_demo.cpp index c6e1383023..8fe5d5b075 100644 --- a/samples/cpp/tutorial_code/ShapeDescriptors/hull_demo.cpp +++ b/samples/cpp/tutorial_code/ShapeDescriptors/hull_demo.cpp @@ -24,7 +24,7 @@ void thresh_callback(int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); @@ -34,7 +34,7 @@ int main( int argc, char** argv ) blur( src_gray, src_gray, Size(3,3) ); /// Create Window - char* source_window = "Source"; + const char* source_window = "Source"; namedWindow( source_window, CV_WINDOW_AUTOSIZE ); imshow( source_window, src ); @@ -63,16 +63,16 @@ void thresh_callback(int, void* ) /// Find the convex hull object for each contour vector >hull( contours.size() ); - for( int i = 0; i < contours.size(); i++ ) + for( size_t i = 0; i < contours.size(); i++ ) { convexHull( Mat(contours[i]), hull[i], false ); } /// Draw contours + hull results Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 ); - for( int i = 0; i< contours.size(); i++ ) + for( size_t i = 0; i< contours.size(); i++ ) { Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); - drawContours( drawing, contours, i, color, 1, 8, vector(), 0, Point() ); - drawContours( drawing, hull, i, color, 1, 8, vector(), 0, Point() ); + drawContours( drawing, contours, (int)i, color, 1, 8, vector(), 0, Point() ); + drawContours( drawing, hull, (int)i, color, 1, 8, vector(), 0, Point() ); } /// Show in a window diff --git a/samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp b/samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp index 363b7d3a43..efd3c63d9e 100644 --- a/samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp +++ b/samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp @@ -24,7 +24,7 @@ void thresh_callback(int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); @@ -34,7 +34,7 @@ int main( int argc, char** argv ) blur( src_gray, src_gray, Size(3,3) ); /// Create Window - char* source_window = "Source"; + const char* source_window = "Source"; namedWindow( source_window, CV_WINDOW_AUTOSIZE ); imshow( source_window, src ); @@ -61,20 +61,20 @@ void thresh_callback(int, void* ) /// Get the moments vector mu(contours.size() ); - for( int i = 0; i < contours.size(); i++ ) + for( size_t i = 0; i < contours.size(); i++ ) { mu[i] = moments( contours[i], false ); } /// Get the mass centers: vector mc( contours.size() ); - for( int i = 0; i < contours.size(); i++ ) - { mc[i] = Point2f( mu[i].m10/mu[i].m00 , mu[i].m01/mu[i].m00 ); } + for( size_t i = 0; i < contours.size(); i++ ) + { mc[i] = Point2f( static_cast(mu[i].m10/mu[i].m00) , static_cast(mu[i].m01/mu[i].m00) ); } /// Draw contours Mat drawing = Mat::zeros( canny_output.size(), CV_8UC3 ); - for( int i = 0; i< contours.size(); i++ ) + for( size_t i = 0; i< contours.size(); i++ ) { Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); - drawContours( drawing, contours, i, color, 2, 8, hierarchy, 0, Point() ); + drawContours( drawing, contours, (int)i, color, 2, 8, hierarchy, 0, Point() ); circle( drawing, mc[i], 4, color, -1, 8, 0 ); } @@ -84,11 +84,11 @@ void thresh_callback(int, void* ) /// Calculate the area with the moments 00 and compare with the result of the OpenCV function printf("\t Info: Area and Contour Length \n"); - for( int i = 0; i< contours.size(); i++ ) + for( size_t i = 0; i< contours.size(); i++ ) { - printf(" * Contour[%d] - Area (M_00) = %.2f - Area OpenCV: %.2f - Length: %.2f \n", i, mu[i].m00, contourArea(contours[i]), arcLength( contours[i], true ) ); + printf(" * Contour[%d] - Area (M_00) = %.2f - Area OpenCV: %.2f - Length: %.2f \n", (int)i, mu[i].m00, contourArea(contours[i]), arcLength( contours[i], true ) ); Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) ); - drawContours( drawing, contours, i, color, 2, 8, hierarchy, 0, Point() ); + drawContours( drawing, contours, (int)i, color, 2, 8, hierarchy, 0, Point() ); circle( drawing, mc[i], 4, color, -1, 8, 0 ); } } diff --git a/samples/cpp/tutorial_code/ShapeDescriptors/pointPolygonTest_demo.cpp b/samples/cpp/tutorial_code/ShapeDescriptors/pointPolygonTest_demo.cpp index e989f2987a..c15bc22c6f 100644 --- a/samples/cpp/tutorial_code/ShapeDescriptors/pointPolygonTest_demo.cpp +++ b/samples/cpp/tutorial_code/ShapeDescriptors/pointPolygonTest_demo.cpp @@ -16,7 +16,7 @@ using namespace std; /** * @function main */ -int main( int argc, char** argv ) +int main( void ) { /// Create an image const int r = 100; @@ -25,12 +25,12 @@ int main( int argc, char** argv ) /// Create a sequence of points to make a contour: vector vert(6); - vert[0] = Point( 1.5*r, 1.34*r ); + vert[0] = Point( 3*r/2, static_cast(1.34*r) ); vert[1] = Point( 1*r, 2*r ); - vert[2] = Point( 1.5*r, 2.866*r ); - vert[3] = Point( 2.5*r, 2.866*r ); + vert[2] = Point( 3*r/2, static_cast(2.866*r) ); + vert[3] = Point( 5*r/2, static_cast(2.866*r) ); vert[4] = Point( 3*r, 2*r ); - vert[5] = Point( 2.5*r, 1.34*r ); + vert[5] = Point( 5*r/2, static_cast(1.34*r) ); /// Draw it in src for( int j = 0; j < 6; j++ ) @@ -47,7 +47,7 @@ int main( int argc, char** argv ) for( int j = 0; j < src.rows; j++ ) { for( int i = 0; i < src.cols; i++ ) - { raw_dist.at(j,i) = pointPolygonTest( contours[0], Point2f(i,j), true ); } + { raw_dist.at(j,i) = (float)pointPolygonTest( contours[0], Point2f((float)i,(float)j), true ); } } double minVal; double maxVal; @@ -61,16 +61,16 @@ int main( int argc, char** argv ) { for( int i = 0; i < src.cols; i++ ) { if( raw_dist.at(j,i) < 0 ) - { drawing.at(j,i)[0] = 255 - (int) abs(raw_dist.at(j,i))*255/minVal; } + { drawing.at(j,i)[0] = (uchar)(255 - abs(raw_dist.at(j,i))*255/minVal); } else if( raw_dist.at(j,i) > 0 ) - { drawing.at(j,i)[2] = 255 - (int) raw_dist.at(j,i)*255/maxVal; } + { drawing.at(j,i)[2] = (uchar)(255 - raw_dist.at(j,i)*255/maxVal); } else { drawing.at(j,i)[0] = 255; drawing.at(j,i)[1] = 255; drawing.at(j,i)[2] = 255; } } } /// Create Window and show your results - char* source_window = "Source"; + const char* source_window = "Source"; namedWindow( source_window, CV_WINDOW_AUTOSIZE ); imshow( source_window, src ); namedWindow( "Distance", CV_WINDOW_AUTOSIZE ); diff --git a/samples/cpp/tutorial_code/TrackingMotion/cornerDetector_Demo.cpp b/samples/cpp/tutorial_code/TrackingMotion/cornerDetector_Demo.cpp index d3a62c6e15..b4789e3345 100644 --- a/samples/cpp/tutorial_code/TrackingMotion/cornerDetector_Demo.cpp +++ b/samples/cpp/tutorial_code/TrackingMotion/cornerDetector_Demo.cpp @@ -26,8 +26,8 @@ double myShiTomasi_minVal; double myShiTomasi_maxVal; RNG rng(12345); -char* myHarris_window = "My Harris corner detector"; -char* myShiTomasi_window = "My Shi Tomasi corner detector"; +const char* myHarris_window = "My Harris corner detector"; +const char* myShiTomasi_window = "My Shi Tomasi corner detector"; /// Function headers void myShiTomasi_function( int, void* ); @@ -36,7 +36,7 @@ void myHarris_function( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); @@ -57,7 +57,7 @@ int main( int argc, char** argv ) { float lambda_1 = myHarris_dst.at(j, i)[0]; float lambda_2 = myHarris_dst.at(j, i)[1]; - Mc.at(j,i) = lambda_1*lambda_2 - 0.04*pow( ( lambda_1 + lambda_2 ), 2 ); + Mc.at(j,i) = lambda_1*lambda_2 - 0.04f*pow( ( lambda_1 + lambda_2 ), 2 ); } } diff --git a/samples/cpp/tutorial_code/TrackingMotion/cornerHarris_Demo.cpp b/samples/cpp/tutorial_code/TrackingMotion/cornerHarris_Demo.cpp index 3a4b48aba5..667ad7e32a 100644 --- a/samples/cpp/tutorial_code/TrackingMotion/cornerHarris_Demo.cpp +++ b/samples/cpp/tutorial_code/TrackingMotion/cornerHarris_Demo.cpp @@ -18,8 +18,8 @@ Mat src, src_gray; int thresh = 200; int max_thresh = 255; -char* source_window = "Source image"; -char* corners_window = "Corners detected"; +const char* source_window = "Source image"; +const char* corners_window = "Corners detected"; /// Function header void cornerHarris_demo( int, void* ); @@ -27,7 +27,7 @@ void cornerHarris_demo( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); diff --git a/samples/cpp/tutorial_code/TrackingMotion/cornerSubPix_Demo.cpp b/samples/cpp/tutorial_code/TrackingMotion/cornerSubPix_Demo.cpp index fd6fcd9d98..3b538119e8 100644 --- a/samples/cpp/tutorial_code/TrackingMotion/cornerSubPix_Demo.cpp +++ b/samples/cpp/tutorial_code/TrackingMotion/cornerSubPix_Demo.cpp @@ -20,7 +20,7 @@ int maxCorners = 10; int maxTrackbar = 25; RNG rng(12345); -char* source_window = "Image"; +const char* source_window = "Image"; /// Function header void goodFeaturesToTrack_Demo( int, void* ); @@ -28,7 +28,7 @@ void goodFeaturesToTrack_Demo( int, void* ); /** * @function main */ -int main( int argc, char** argv ) +int main( int, char** argv ) { /// Load source image and convert it to gray src = imread( argv[1], 1 ); @@ -83,7 +83,7 @@ void goodFeaturesToTrack_Demo( int, void* ) /// Draw corners detected cout<<"** Number of corners detected: "< #include #include +#include #include #include @@ -10,7 +11,7 @@ using namespace cv; using namespace std; -void help() +static void help() { cout << "This is a camera calibration sample." << endl << "Usage: calibration configurationFile" << endl @@ -99,7 +100,7 @@ public: if (readStringList(input, imageList)) { inputType = IMAGE_LIST; - nrFrames = (nrFrames < imageList.size()) ? nrFrames : imageList.size(); + nrFrames = (nrFrames < (int)imageList.size()) ? nrFrames : (int)imageList.size(); } else inputType = VIDEO_FILE; @@ -196,11 +197,7 @@ private: }; -void write(FileStorage& fs, const std::string&, const Settings& x) -{ - x.write(fs); -} -void read(const FileNode& node, Settings& x, const Settings& default_value = Settings()) +static void read(const FileNode& node, Settings& x, const Settings& default_value = Settings()) { if(node.empty()) x = default_value; @@ -282,6 +279,9 @@ int main(int argc, char* argv[]) case Settings::ASYMMETRIC_CIRCLES_GRID: found = findCirclesGrid( view, s.boardSize, pointBuf, CALIB_CB_ASYMMETRIC_GRID ); break; + default: + found = false; + break; } if ( found) // If done with success, @@ -336,7 +336,7 @@ int main(int argc, char* argv[]) //------------------------------ Show image and check for input commands ------------------- imshow("Image View", view); - char key = waitKey(s.inputCapture.isOpened() ? 50 : s.delay); + char key = (char)waitKey(s.inputCapture.isOpened() ? 50 : s.delay); if( key == ESC_KEY ) break; @@ -366,7 +366,7 @@ int main(int argc, char* argv[]) continue; remap(view, rview, map1, map2, INTER_LINEAR); imshow("Image View", rview); - char c = waitKey(); + char c = (char)waitKey(); if( c == ESC_KEY || c == 'q' || c == 'Q' ) break; } @@ -376,11 +376,11 @@ int main(int argc, char* argv[]) return 0; } -double computeReprojectionErrors( const vector >& objectPoints, - const vector >& imagePoints, - const vector& rvecs, const vector& tvecs, - const Mat& cameraMatrix , const Mat& distCoeffs, - vector& perViewErrors) +static double computeReprojectionErrors( const vector >& objectPoints, + const vector >& imagePoints, + const vector& rvecs, const vector& tvecs, + const Mat& cameraMatrix , const Mat& distCoeffs, + vector& perViewErrors) { vector imagePoints2; int i, totalPoints = 0; @@ -402,8 +402,8 @@ double computeReprojectionErrors( const vector >& objectPoints, return std::sqrt(totalErr/totalPoints); } -void calcBoardCornerPositions(Size boardSize, float squareSize, vector& corners, - Settings::Pattern patternType /*= Settings::CHESSBOARD*/) +static void calcBoardCornerPositions(Size boardSize, float squareSize, vector& corners, + Settings::Pattern patternType /*= Settings::CHESSBOARD*/) { corners.clear(); @@ -421,12 +421,14 @@ void calcBoardCornerPositions(Size boardSize, float squareSize, vector& for( int j = 0; j < boardSize.width; j++ ) corners.push_back(Point3f(float((2*j + i % 2)*squareSize), float(i*squareSize), 0)); break; + default: + break; } } -bool runCalibration( Settings& s, Size& imageSize, Mat& cameraMatrix, Mat& distCoeffs, - vector > imagePoints, vector& rvecs, vector& tvecs, - vector& reprojErrs, double& totalAvgErr) +static bool runCalibration( Settings& s, Size& imageSize, Mat& cameraMatrix, Mat& distCoeffs, + vector > imagePoints, vector& rvecs, vector& tvecs, + vector& reprojErrs, double& totalAvgErr) { cameraMatrix = Mat::eye(3, 3, CV_64F); @@ -455,16 +457,16 @@ bool runCalibration( Settings& s, Size& imageSize, Mat& cameraMatrix, Mat& distC } // Print camera parameters to the output file -void saveCameraParams( Settings& s, Size& imageSize, Mat& cameraMatrix, Mat& distCoeffs, - const vector& rvecs, const vector& tvecs, - const vector& reprojErrs, const vector >& imagePoints, - double totalAvgErr ) +static void saveCameraParams( Settings& s, Size& imageSize, Mat& cameraMatrix, Mat& distCoeffs, + const vector& rvecs, const vector& tvecs, + const vector& reprojErrs, const vector >& imagePoints, + double totalAvgErr ) { FileStorage fs( s.outputFileName, FileStorage::WRITE ); - time_t t; - time( &t ); - struct tm *t2 = localtime( &t ); + time_t tm; + time( &tm ); + struct tm *t2 = localtime( &tm ); char buf[1024]; strftime( buf, sizeof(buf)-1, "%c", t2 ); @@ -522,7 +524,7 @@ void saveCameraParams( Settings& s, Size& imageSize, Mat& cameraMatrix, Mat& dis if( !imagePoints.empty() ) { - Mat imagePtMat((int)imagePoints.size(), imagePoints[0].size(), CV_32FC2); + Mat imagePtMat((int)imagePoints.size(), (int)imagePoints[0].size(), CV_32FC2); for( int i = 0; i < (int)imagePoints.size(); i++ ) { Mat r = imagePtMat.row(i).reshape(2, imagePtMat.cols); diff --git a/samples/cpp/tutorial_code/calib3d/stereoBM/SBM_Sample.cpp b/samples/cpp/tutorial_code/calib3d/stereoBM/SBM_Sample.cpp index c3ae676374..13d5aa8708 100644 --- a/samples/cpp/tutorial_code/calib3d/stereoBM/SBM_Sample.cpp +++ b/samples/cpp/tutorial_code/calib3d/stereoBM/SBM_Sample.cpp @@ -12,7 +12,7 @@ using namespace cv; -char *windowDisparity = "Disparity"; +const char *windowDisparity = "Disparity"; void readme(); diff --git a/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp b/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp index 3fc9a093ac..8ebcb7cba1 100644 --- a/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp +++ b/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp @@ -118,7 +118,7 @@ int main(int argc, char* argv[]) { cv::Mat retinaOutput_magno; // processing loop with no stop condition - while(true) + for(;;) { // if using video stream, then, grabbing a new frame, else, input remains the same if (videoCapture.isOpened()) diff --git a/samples/cpp/tutorial_code/core/Matrix/Drawing_1.cpp b/samples/cpp/tutorial_code/core/Matrix/Drawing_1.cpp index 2f5da6ebfe..3e2437fef2 100644 --- a/samples/cpp/tutorial_code/core/Matrix/Drawing_1.cpp +++ b/samples/cpp/tutorial_code/core/Matrix/Drawing_1.cpp @@ -20,7 +20,7 @@ void MyLine( Mat img, Point start, Point end ); * @function main * @brief Main function */ -int main( int argc, char **argv ){ +int main( void ){ /// Windows names char atom_window[] = "Drawing 1: Atom"; @@ -40,7 +40,7 @@ int main( int argc, char **argv ){ MyEllipse( atom_image, -45 ); /// 1.b. Creating circles - MyFilledCircle( atom_image, Point( w/2.0, w/2.0) ); + MyFilledCircle( atom_image, Point( w/2, w/2) ); /// 2. Draw a rook /// ------------------ @@ -50,7 +50,7 @@ int main( int argc, char **argv ){ /// 2.b. Creating rectangles rectangle( rook_image, - Point( 0, 7*w/8.0 ), + Point( 0, 7*w/8 ), Point( w, w), Scalar( 0, 255, 255 ), -1, @@ -84,8 +84,8 @@ void MyEllipse( Mat img, double angle ) int lineType = 8; ellipse( img, - Point( w/2.0, w/2.0 ), - Size( w/4.0, w/16.0 ), + Point( w/2, w/2 ), + Size( w/4, w/16 ), angle, 0, 360, @@ -105,7 +105,7 @@ void MyFilledCircle( Mat img, Point center ) circle( img, center, - w/32.0, + w/32, Scalar( 0, 0, 255 ), thickness, lineType ); @@ -121,26 +121,26 @@ void MyPolygon( Mat img ) /** Create some points */ Point rook_points[1][20]; - rook_points[0][0] = Point( w/4.0, 7*w/8.0 ); - rook_points[0][1] = Point( 3*w/4.0, 7*w/8.0 ); - rook_points[0][2] = Point( 3*w/4.0, 13*w/16.0 ); - rook_points[0][3] = Point( 11*w/16.0, 13*w/16.0 ); - rook_points[0][4] = Point( 19*w/32.0, 3*w/8.0 ); - rook_points[0][5] = Point( 3*w/4.0, 3*w/8.0 ); - rook_points[0][6] = Point( 3*w/4.0, w/8.0 ); - rook_points[0][7] = Point( 26*w/40.0, w/8.0 ); - rook_points[0][8] = Point( 26*w/40.0, w/4.0 ); - rook_points[0][9] = Point( 22*w/40.0, w/4.0 ); - rook_points[0][10] = Point( 22*w/40.0, w/8.0 ); - rook_points[0][11] = Point( 18*w/40.0, w/8.0 ); - rook_points[0][12] = Point( 18*w/40.0, w/4.0 ); - rook_points[0][13] = Point( 14*w/40.0, w/4.0 ); - rook_points[0][14] = Point( 14*w/40.0, w/8.0 ); - rook_points[0][15] = Point( w/4.0, w/8.0 ); - rook_points[0][16] = Point( w/4.0, 3*w/8.0 ); - rook_points[0][17] = Point( 13*w/32.0, 3*w/8.0 ); - rook_points[0][18] = Point( 5*w/16.0, 13*w/16.0 ); - rook_points[0][19] = Point( w/4.0, 13*w/16.0) ; + rook_points[0][0] = Point( w/4, 7*w/8 ); + rook_points[0][1] = Point( 3*w/4, 7*w/8 ); + rook_points[0][2] = Point( 3*w/4, 13*w/16 ); + rook_points[0][3] = Point( 11*w/16, 13*w/16 ); + rook_points[0][4] = Point( 19*w/32, 3*w/8 ); + rook_points[0][5] = Point( 3*w/4, 3*w/8 ); + rook_points[0][6] = Point( 3*w/4, w/8 ); + rook_points[0][7] = Point( 26*w/40, w/8 ); + rook_points[0][8] = Point( 26*w/40, w/4 ); + rook_points[0][9] = Point( 22*w/40, w/4 ); + rook_points[0][10] = Point( 22*w/40, w/8 ); + rook_points[0][11] = Point( 18*w/40, w/8 ); + rook_points[0][12] = Point( 18*w/40, w/4 ); + rook_points[0][13] = Point( 14*w/40, w/4 ); + rook_points[0][14] = Point( 14*w/40, w/8 ); + rook_points[0][15] = Point( w/4, w/8 ); + rook_points[0][16] = Point( w/4, 3*w/8 ); + rook_points[0][17] = Point( 13*w/32, 3*w/8 ); + rook_points[0][18] = Point( 5*w/16, 13*w/16 ); + rook_points[0][19] = Point( w/4, 13*w/16 ); const Point* ppt[1] = { rook_points[0] }; int npt[] = { 20 }; diff --git a/samples/cpp/tutorial_code/core/Matrix/Drawing_2.cpp b/samples/cpp/tutorial_code/core/Matrix/Drawing_2.cpp index 56058e2ecc..c84eccb69e 100644 --- a/samples/cpp/tutorial_code/core/Matrix/Drawing_2.cpp +++ b/samples/cpp/tutorial_code/core/Matrix/Drawing_2.cpp @@ -36,7 +36,7 @@ int Displaying_Big_End( Mat image, char* window_name, RNG rng ); /** * @function main */ -int main( int argc, char** argv ) +int main( void ) { int c; @@ -106,7 +106,6 @@ static Scalar randomColor( RNG& rng ) */ int Drawing_Random_Lines( Mat image, char* window_name, RNG rng ) { - int lineType = 8; Point pt1, pt2; for( int i = 0; i < NUMBER; i++ ) @@ -303,7 +302,7 @@ int Displaying_Random_Text( Mat image, char* window_name, RNG rng ) /** * @function Displaying_Big_End */ -int Displaying_Big_End( Mat image, char* window_name, RNG rng ) +int Displaying_Big_End( Mat image, char* window_name, RNG ) { Size textsize = getTextSize("OpenCV forever!", CV_FONT_HERSHEY_COMPLEX, 3, 5, 0); Point org((window_width - textsize.width)/2, (window_height - textsize.height)/2); diff --git a/samples/cpp/tutorial_code/core/discrete_fourier_transform/discrete_fourier_transform.cpp b/samples/cpp/tutorial_code/core/discrete_fourier_transform/discrete_fourier_transform.cpp index f15f1bd94b..ba54188aee 100644 --- a/samples/cpp/tutorial_code/core/discrete_fourier_transform/discrete_fourier_transform.cpp +++ b/samples/cpp/tutorial_code/core/discrete_fourier_transform/discrete_fourier_transform.cpp @@ -7,7 +7,7 @@ using namespace cv; using namespace std; -void help(char* progName) +static void help(char* progName) { cout << endl << "This program demonstrated the use of the discrete Fourier transform (DFT). " << endl diff --git a/samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp b/samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp index 614ff50ca8..9c527a8aa6 100644 --- a/samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp +++ b/samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp @@ -5,7 +5,7 @@ using namespace cv; using namespace std; -void help(char** av) +static void help(char** av) { cout << endl << av[0] << " shows the usage of the OpenCV serialization functionality." << endl @@ -42,11 +42,11 @@ public: // Data Members }; //These write and read functions must be defined for the serialization in FileStorage to work -void write(FileStorage& fs, const std::string&, const MyData& x) +static void write(FileStorage& fs, const std::string&, const MyData& x) { x.write(fs); } -void read(const FileNode& node, MyData& x, const MyData& default_value = MyData()){ +static void read(const FileNode& node, MyData& x, const MyData& default_value = MyData()){ if(node.empty()) x = default_value; else @@ -54,7 +54,7 @@ void read(const FileNode& node, MyData& x, const MyData& default_value = MyData( } // This function will print our custom class to the console -ostream& operator<<(ostream& out, const MyData& m) +static ostream& operator<<(ostream& out, const MyData& m) { out << "{ id = " << m.id << ", "; out << "X = " << m.X << ", "; diff --git a/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp b/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp index c878f55e5c..defc23fd78 100644 --- a/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp +++ b/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp @@ -6,7 +6,7 @@ using namespace std; using namespace cv; -void help() +static void help() { cout << "\n--------------------------------------------------------------------------" << endl @@ -57,7 +57,7 @@ int main( int argc, char* argv[]) uchar table[256]; for (int i = 0; i < 256; ++i) - table[i] = divideWith* (i/divideWith); + table[i] = (uchar)(divideWith * (i/divideWith)); const int times = 100; double t; diff --git a/samples/cpp/tutorial_code/core/interoperability_with_OpenCV_1/interoperability_with_OpenCV_1.cpp b/samples/cpp/tutorial_code/core/interoperability_with_OpenCV_1/interoperability_with_OpenCV_1.cpp index 85394667bb..aeeaf21100 100644 --- a/samples/cpp/tutorial_code/core/interoperability_with_OpenCV_1/interoperability_with_OpenCV_1.cpp +++ b/samples/cpp/tutorial_code/core/interoperability_with_OpenCV_1/interoperability_with_OpenCV_1.cpp @@ -8,7 +8,7 @@ using namespace cv; // The new C++ interface API is inside this namespace. Import it. using namespace std; -void help( char* progName) +static void help( char* progName) { cout << endl << progName << " shows how to use cv::Mat and IplImages together (converting back and forth)." << endl diff --git a/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp b/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp index d941a0d0a5..94e0a29a61 100644 --- a/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp +++ b/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp @@ -6,7 +6,7 @@ using namespace std; using namespace cv; -void help(char* progName) +static void help(char* progName) { cout << endl << "This program shows how to filter images with mask: the write it yourself and the" diff --git a/samples/cpp/tutorial_code/core/mat_the_basic_image_container/mat_the_basic_image_container.cpp b/samples/cpp/tutorial_code/core/mat_the_basic_image_container/mat_the_basic_image_container.cpp index adcdb20789..4f26f050da 100644 --- a/samples/cpp/tutorial_code/core/mat_the_basic_image_container/mat_the_basic_image_container.cpp +++ b/samples/cpp/tutorial_code/core/mat_the_basic_image_container/mat_the_basic_image_container.cpp @@ -6,7 +6,7 @@ using namespace std; using namespace cv; -void help() +static void help() { cout << "\n--------------------------------------------------------------------------" << endl @@ -77,8 +77,8 @@ int main(int,char**) cout << "Vector of floats via Mat = " << Mat(v) << endl << endl; vector vPoints(20); - for (size_t E = 0; E < vPoints.size(); ++E) - vPoints[E] = Point2f((float)(E * 5), (float)(E % 7)); + for (size_t i = 0; i < vPoints.size(); ++i) + vPoints[i] = Point2f((float)(i * 5), (float)(i % 7)); cout << "A vector of 2D Points = " << vPoints << endl << endl; return 0; diff --git a/samples/cpp/tutorial_code/features2D/SURF_FlannMatcher.cpp b/samples/cpp/tutorial_code/features2D/SURF_FlannMatcher.cpp index d2e40ed45a..f4cde9b2ee 100644 --- a/samples/cpp/tutorial_code/features2D/SURF_FlannMatcher.cpp +++ b/samples/cpp/tutorial_code/features2D/SURF_FlannMatcher.cpp @@ -83,7 +83,7 @@ int main( int argc, char** argv ) //-- Show detected matches imshow( "Good Matches", img_matches ); - for( int i = 0; i < good_matches.size(); i++ ) + for( int i = 0; i < (int)good_matches.size(); i++ ) { printf( "-- Good Match [%d] Keypoint 1: %d -- Keypoint 2: %d \n", i, good_matches[i].queryIdx, good_matches[i].trainIdx ); } waitKey(0); diff --git a/samples/cpp/tutorial_code/features2D/SURF_Homography.cpp b/samples/cpp/tutorial_code/features2D/SURF_Homography.cpp index d6f997c9fa..506e3b44f2 100644 --- a/samples/cpp/tutorial_code/features2D/SURF_Homography.cpp +++ b/samples/cpp/tutorial_code/features2D/SURF_Homography.cpp @@ -10,7 +10,7 @@ #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/calib3d/calib3d.hpp" -#include "opencv2/nonfree/features2d.cpp" +#include "opencv2/nonfree/features2d.hpp" using namespace cv; @@ -84,7 +84,7 @@ int main( int argc, char** argv ) std::vector obj; std::vector scene; - for( int i = 0; i < good_matches.size(); i++ ) + for( size_t i = 0; i < good_matches.size(); i++ ) { //-- Get the keypoints from the good matches obj.push_back( keypoints_object[ good_matches[i].queryIdx ].pt ); @@ -103,10 +103,11 @@ int main( int argc, char** argv ) //-- Draw lines between the corners (the mapped object in the scene - image_2 ) - line( img_matches, scene_corners[0] + Point2f( img_object.cols, 0), scene_corners[1] + Point2f( img_object.cols, 0), Scalar(0, 255, 0), 4 ); - line( img_matches, scene_corners[1] + Point2f( img_object.cols, 0), scene_corners[2] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 ); - line( img_matches, scene_corners[2] + Point2f( img_object.cols, 0), scene_corners[3] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 ); - line( img_matches, scene_corners[3] + Point2f( img_object.cols, 0), scene_corners[0] + Point2f( img_object.cols, 0), Scalar( 0, 255, 0), 4 ); + Point2f offset( (float)img_object.cols, 0); + line( img_matches, scene_corners[0] + offset, scene_corners[1] + offset, Scalar(0, 255, 0), 4 ); + line( img_matches, scene_corners[1] + offset, scene_corners[2] + offset, Scalar( 0, 255, 0), 4 ); + line( img_matches, scene_corners[2] + offset, scene_corners[3] + offset, Scalar( 0, 255, 0), 4 ); + line( img_matches, scene_corners[3] + offset, scene_corners[0] + offset, Scalar( 0, 255, 0), 4 ); //-- Show detected matches imshow( "Good Matches & Object detection", img_matches ); diff --git a/samples/cpp/tutorial_code/features2D/SURF_descriptor.cpp b/samples/cpp/tutorial_code/features2D/SURF_descriptor.cpp index 051d95ec5d..527e5dd951 100644 --- a/samples/cpp/tutorial_code/features2D/SURF_descriptor.cpp +++ b/samples/cpp/tutorial_code/features2D/SURF_descriptor.cpp @@ -9,7 +9,7 @@ #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" -#include "opencv2/nonfree/features2d.cpp" +#include "opencv2/nonfree/features2d.hpp" using namespace cv; @@ -49,7 +49,7 @@ int main( int argc, char** argv ) extractor.compute( img_2, keypoints_2, descriptors_2 ); //-- Step 3: Matching descriptor vectors with a brute force matcher - BruteForceMatcher< L2 > matcher; + BFMatcher matcher(NORM_L2); std::vector< DMatch > matches; matcher.match( descriptors_1, descriptors_2, matches ); diff --git a/samples/cpp/tutorial_code/features2D/SURF_detector.cpp b/samples/cpp/tutorial_code/features2D/SURF_detector.cpp index 63ca76eb23..2625f1df3b 100644 --- a/samples/cpp/tutorial_code/features2D/SURF_detector.cpp +++ b/samples/cpp/tutorial_code/features2D/SURF_detector.cpp @@ -9,7 +9,7 @@ #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" -#include "opencv2/nonfree/features2d.cpp" +#include "opencv2/nonfree/features2d.hpp" using namespace cv; diff --git a/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp b/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp index 810865f643..0bcb6fafeb 100644 --- a/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp +++ b/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp @@ -42,7 +42,7 @@ struct BufferMSSIM // Optimized GPU versions }; Scalar getMSSIM_GPU_optimized( const Mat& i1, const Mat& i2, BufferMSSIM& b); -void help() +static void help() { cout << "\n--------------------------------------------------------------------------" << endl @@ -54,7 +54,7 @@ void help() << endl; } -int main(int argc, char *argv[]) +int main(int, char *argv[]) { help(); Mat I1 = imread(argv[1]); // Read the two images @@ -72,7 +72,7 @@ int main(int argc, char *argv[]) int TIMES; stringstream sstr(argv[3]); sstr >> TIMES; - double time, result; + double time, result = 0; //------------------------------- PSNR CPU ---------------------------------------------------- time = (double)getTickCount(); @@ -84,7 +84,7 @@ int main(int argc, char *argv[]) time /= TIMES; cout << "Time of PSNR CPU (averaged for " << TIMES << " runs): " << time << " milliseconds." - << " With result of: " << result << endl; + << " With result of: " << result << endl; //------------------------------- PSNR GPU ---------------------------------------------------- time = (double)getTickCount(); @@ -291,17 +291,17 @@ Scalar getMSSIM_GPU( const Mat& i1, const Mat& i2) { const float C1 = 6.5025f, C2 = 58.5225f; /***************************** INITS **********************************/ - gpu::GpuMat gI1, gI2, gs1, t1,t2; + gpu::GpuMat gI1, gI2, gs1, tmp1,tmp2; gI1.upload(i1); gI2.upload(i2); - gI1.convertTo(t1, CV_MAKE_TYPE(CV_32F, gI1.channels())); - gI2.convertTo(t2, CV_MAKE_TYPE(CV_32F, gI2.channels())); + gI1.convertTo(tmp1, CV_MAKE_TYPE(CV_32F, gI1.channels())); + gI2.convertTo(tmp2, CV_MAKE_TYPE(CV_32F, gI2.channels())); vector vI1, vI2; - gpu::split(t1, vI1); - gpu::split(t2, vI2); + gpu::split(tmp1, vI1); + gpu::split(tmp2, vI2); Scalar mssim; for( int i = 0; i < gI1.channels(); ++i ) @@ -356,8 +356,6 @@ Scalar getMSSIM_GPU( const Mat& i1, const Mat& i2) Scalar getMSSIM_GPU_optimized( const Mat& i1, const Mat& i2, BufferMSSIM& b) { - int cn = i1.channels(); - const float C1 = 6.5025f, C2 = 58.5225f; /***************************** INITS **********************************/ diff --git a/samples/cpp/tutorial_code/introduction/windows_visual_studio_Opencv/Test.cpp b/samples/cpp/tutorial_code/introduction/windows_visual_studio_Opencv/Test.cpp index 946ad44852..7f43f0e779 100644 --- a/samples/cpp/tutorial_code/introduction/windows_visual_studio_Opencv/Test.cpp +++ b/samples/cpp/tutorial_code/introduction/windows_visual_studio_Opencv/Test.cpp @@ -14,7 +14,7 @@ using namespace cv; double getPSNR ( const Mat& I1, const Mat& I2); Scalar getMSSIM( const Mat& I1, const Mat& I2); -void help() +static void help() { cout << "\n--------------------------------------------------------------------------" << endl @@ -26,7 +26,7 @@ void help() << "--------------------------------------------------------------------------" << endl << endl; } -int main(int argc, char *argv[], char *window_name) +int main(int argc, char *argv[]) { help(); if (argc != 5) @@ -89,7 +89,7 @@ int main(int argc, char *argv[], char *window_name) double psnrV; Scalar mssimV; - while( true) //Show the image captured in the window and repeat + for(;;) //Show the image captured in the window and repeat { captRefrnc >> frameReference; captUndTst >> frameUnderTest; @@ -124,7 +124,7 @@ int main(int argc, char *argv[], char *window_name) imshow( WIN_RF, frameReference); imshow( WIN_UT, frameUnderTest); - c = cvWaitKey(delay); + c = (char)cvWaitKey(delay); if (c == 27) break; } diff --git a/samples/cpp/tutorial_code/ml/non_linear_svms/non_linear_svms.cpp b/samples/cpp/tutorial_code/ml/non_linear_svms/non_linear_svms.cpp index d94e8f82d8..a24029a232 100644 --- a/samples/cpp/tutorial_code/ml/non_linear_svms/non_linear_svms.cpp +++ b/samples/cpp/tutorial_code/ml/non_linear_svms/non_linear_svms.cpp @@ -9,7 +9,7 @@ using namespace cv; using namespace std; -void help() +static void help() { cout<< "\n--------------------------------------------------------------------------" << endl << "This program shows Support Vector Machines for Non-Linearly Separable Data. " << endl diff --git a/samples/cpp/tutorial_code/objectDetection/objectDetection.cpp b/samples/cpp/tutorial_code/objectDetection/objectDetection.cpp index 14538ab6a5..e20a7d4caa 100644 --- a/samples/cpp/tutorial_code/objectDetection/objectDetection.cpp +++ b/samples/cpp/tutorial_code/objectDetection/objectDetection.cpp @@ -28,7 +28,7 @@ RNG rng(12345); /** * @function main */ -int main( int argc, const char** argv ) +int main( void ) { CvCapture* capture; Mat frame; @@ -41,7 +41,7 @@ int main( int argc, const char** argv ) capture = cvCaptureFromCAM( -1 ); if( capture ) { - while( true ) + for(;;) { frame = cvQueryFrame( capture ); @@ -72,10 +72,10 @@ void detectAndDisplay( Mat frame ) //-- Detect faces face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) ); - for( int i = 0; i < faces.size(); i++ ) + for( size_t i = 0; i < faces.size(); i++ ) { - Point center( faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5 ); - ellipse( frame, center, Size( faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 2, 8, 0 ); + Point center( faces[i].x + faces[i].width/2, faces[i].y + faces[i].height/2 ); + ellipse( frame, center, Size( faces[i].width/2, faces[i].height/2), 0, 0, 360, Scalar( 255, 0, 255 ), 2, 8, 0 ); Mat faceROI = frame_gray( faces[i] ); std::vector eyes; @@ -83,11 +83,11 @@ void detectAndDisplay( Mat frame ) //-- In each face, detect eyes eyes_cascade.detectMultiScale( faceROI, eyes, 1.1, 2, 0 |CV_HAAR_SCALE_IMAGE, Size(30, 30) ); - for( int j = 0; j < eyes.size(); j++ ) + for( size_t j = 0; j < eyes.size(); j++ ) { - Point center( faces[i].x + eyes[j].x + eyes[j].width*0.5, faces[i].y + eyes[j].y + eyes[j].height*0.5 ); + Point eye_center( faces[i].x + eyes[j].x + eyes[j].width/2, faces[i].y + eyes[j].y + eyes[j].height/2 ); int radius = cvRound( (eyes[j].width + eyes[j].height)*0.25 ); - circle( frame, center, radius, Scalar( 255, 0, 0 ), 3, 8, 0 ); + circle( frame, eye_center, radius, Scalar( 255, 0, 0 ), 3, 8, 0 ); } } //-- Show what you got diff --git a/samples/cpp/tutorial_code/objectDetection/objectDetection2.cpp b/samples/cpp/tutorial_code/objectDetection/objectDetection2.cpp index 4180dc7af6..75167f6128 100644 --- a/samples/cpp/tutorial_code/objectDetection/objectDetection2.cpp +++ b/samples/cpp/tutorial_code/objectDetection/objectDetection2.cpp @@ -28,7 +28,7 @@ RNG rng(12345); /** * @function main */ -int main( int argc, const char** argv ) +int main( void ) { CvCapture* capture; Mat frame; @@ -41,7 +41,7 @@ int main( int argc, const char** argv ) capture = cvCaptureFromCAM( -1 ); if( capture ) { - while( true ) + for(;;) { frame = cvQueryFrame( capture ); @@ -73,7 +73,7 @@ void detectAndDisplay( Mat frame ) //-- Detect faces face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0, Size(80, 80) ); - for( int i = 0; i < faces.size(); i++ ) + for( size_t i = 0; i < faces.size(); i++ ) { Mat faceROI = frame_gray( faces[i] ); std::vector eyes; @@ -83,14 +83,14 @@ void detectAndDisplay( Mat frame ) if( eyes.size() == 2) { //-- Draw the face - Point center( faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5 ); - ellipse( frame, center, Size( faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 0 ), 2, 8, 0 ); + Point center( faces[i].x + faces[i].width/2, faces[i].y + faces[i].height/2 ); + ellipse( frame, center, Size( faces[i].width/2, faces[i].height/2), 0, 0, 360, Scalar( 255, 0, 0 ), 2, 8, 0 ); - for( int j = 0; j < eyes.size(); j++ ) + for( size_t j = 0; j < eyes.size(); j++ ) { //-- Draw the eyes - Point center( faces[i].x + eyes[j].x + eyes[j].width*0.5, faces[i].y + eyes[j].y + eyes[j].height*0.5 ); + Point eye_center( faces[i].x + eyes[j].x + eyes[j].width/2, faces[i].y + eyes[j].y + eyes[j].height/2 ); int radius = cvRound( (eyes[j].width + eyes[j].height)*0.25 ); - circle( frame, center, radius, Scalar( 255, 0, 255 ), 3, 8, 0 ); + circle( frame, eye_center, radius, Scalar( 255, 0, 255 ), 3, 8, 0 ); } } From dad56e202fb400d19fa31b172359cd17048a28e7 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Thu, 8 Nov 2012 11:41:27 +0400 Subject: [PATCH 08/11] Rename sample & tutorial executables --- samples/c/CMakeLists.txt | 4 ++-- samples/cpp/CMakeLists.txt | 19 ++++++++++++++----- samples/gpu/CMakeLists.txt | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/samples/c/CMakeLists.txt b/samples/c/CMakeLists.txt index 411e185789..dfab5e00af 100644 --- a/samples/c/CMakeLists.txt +++ b/samples/c/CMakeLists.txt @@ -27,7 +27,7 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_C_SAMPLES_REQUIRED_DEPS}) set_target_properties(${the_target} PROPERTIES - OUTPUT_NAME "${name}" + OUTPUT_NAME "c-example-${name}" PROJECT_LABEL "(EXAMPLE) ${name}") if(ENABLE_SOLUTION_FOLDERS) @@ -47,7 +47,7 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) foreach(sample_filename ${cpp_samples}) get_filename_component(sample ${sample_filename} NAME_WE) - OPENCV_DEFINE_C_EXAMPLE(${sample} ${sample_filename}) + OPENCV_DEFINE_C_EXAMPLE(${sample} ${sample_filename}) endforeach() endif() diff --git a/samples/cpp/CMakeLists.txt b/samples/cpp/CMakeLists.txt index 1ed0d2c6f0..2004857f1d 100644 --- a/samples/cpp/CMakeLists.txt +++ b/samples/cpp/CMakeLists.txt @@ -28,7 +28,16 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) # Define executable targets # --------------------------------------------- MACRO(OPENCV_DEFINE_CPP_EXAMPLE name srcs) - set(the_target "example_${name}") + + if("${srcs}" MATCHES "tutorial_code") + set(sample_kind tutorial) + set(sample_KIND TUTORIAL) + else() + set(sample_kind example) + set(sample_KIND EXAMPLE) + endif() + + set(the_target "${sample_kind}_${name}") add_executable(${the_target} ${srcs}) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) @@ -37,11 +46,11 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) endif() set_target_properties(${the_target} PROPERTIES - OUTPUT_NAME "${name}" - PROJECT_LABEL "(EXAMPLE) ${name}") + OUTPUT_NAME "cpp-${sample_kind}-${name}" + PROJECT_LABEL "(${sample_KIND}) ${name}") if(ENABLE_SOLUTION_FOLDERS) - set_target_properties(${the_target} PROPERTIES FOLDER "samples//cpp") + set_target_properties(${the_target} PROPERTIES FOLDER "${sample_kind}s//cpp") endif() if(WIN32) @@ -49,7 +58,7 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) set_target_properties(${the_target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /DEBUG") endif() install(TARGETS ${the_target} - RUNTIME DESTINATION "samples/cpp" COMPONENT main) + RUNTIME DESTINATION "${sample_kind}s/cpp" COMPONENT main) endif() ENDMACRO() diff --git a/samples/gpu/CMakeLists.txt b/samples/gpu/CMakeLists.txt index 2bf069eafe..6abb7e5af8 100644 --- a/samples/gpu/CMakeLists.txt +++ b/samples/gpu/CMakeLists.txt @@ -35,7 +35,7 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) set_target_properties(${the_target} PROPERTIES - OUTPUT_NAME "${name}_${project}" + OUTPUT_NAME "${project}-example-${name}" PROJECT_LABEL "(EXAMPLE_${project_upper}) ${name}") if(ENABLE_SOLUTION_FOLDERS) From a126532cb7e2a02f162ae4c179ea46f8b0a20893 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Fri, 9 Nov 2012 11:29:52 +0400 Subject: [PATCH 09/11] Fix OS X build warnings --- modules/calib3d/perf/perf_precomp.hpp | 2 +- modules/calib3d/test/test_precomp.hpp | 2 +- modules/contrib/test/test_precomp.hpp | 2 +- modules/core/perf/perf_precomp.hpp | 2 +- modules/core/test/test_precomp.hpp | 2 +- modules/features2d/perf/perf_precomp.hpp | 2 +- modules/features2d/test/test_precomp.hpp | 2 +- modules/gpu/perf/perf_precomp.hpp | 2 +- modules/gpu/test/test_precomp.hpp | 2 +- modules/highgui/perf/perf_precomp.hpp | 2 +- modules/highgui/test/test_precomp.hpp | 2 +- modules/imgproc/perf/perf_precomp.hpp | 2 +- modules/imgproc/test/test_precomp.hpp | 2 +- modules/legacy/test/test_precomp.hpp | 2 +- modules/ml/test/test_precomp.hpp | 2 +- modules/nonfree/perf/perf_precomp.hpp | 2 +- modules/nonfree/test/test_precomp.hpp | 2 +- modules/objdetect/perf/perf_precomp.hpp | 2 +- modules/objdetect/test/test_precomp.hpp | 2 +- modules/photo/perf/perf_precomp.hpp | 2 +- modules/photo/test/test_precomp.hpp | 2 +- modules/stitching/perf/perf_precomp.hpp | 2 +- modules/stitching/test/test_precomp.hpp | 2 +- modules/video/perf/perf_precomp.hpp | 2 +- modules/video/test/test_precomp.hpp | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/modules/calib3d/perf/perf_precomp.hpp b/modules/calib3d/perf/perf_precomp.hpp index 891d50e050..6cee5b90e6 100644 --- a/modules/calib3d/perf/perf_precomp.hpp +++ b/modules/calib3d/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/calib3d/test/test_precomp.hpp b/modules/calib3d/test/test_precomp.hpp index 2d1f35702e..e0fcd486d1 100644 --- a/modules/calib3d/test/test_precomp.hpp +++ b/modules/calib3d/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/contrib/test/test_precomp.hpp b/modules/contrib/test/test_precomp.hpp index 2a7a3d44b8..d477eddbbe 100644 --- a/modules/contrib/test/test_precomp.hpp +++ b/modules/contrib/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/core/perf/perf_precomp.hpp b/modules/core/perf/perf_precomp.hpp index 9417bc3641..4d5d9886e3 100644 --- a/modules/core/perf/perf_precomp.hpp +++ b/modules/core/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/core/test/test_precomp.hpp b/modules/core/test/test_precomp.hpp index 6f1b188ccd..5cbe1c8f99 100644 --- a/modules/core/test/test_precomp.hpp +++ b/modules/core/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/features2d/perf/perf_precomp.hpp b/modules/features2d/perf/perf_precomp.hpp index 1f3ad1fe99..c3f98c2176 100644 --- a/modules/features2d/perf/perf_precomp.hpp +++ b/modules/features2d/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/features2d/test/test_precomp.hpp b/modules/features2d/test/test_precomp.hpp index 28985f944f..bc2d8be6e9 100644 --- a/modules/features2d/test/test_precomp.hpp +++ b/modules/features2d/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/gpu/perf/perf_precomp.hpp b/modules/gpu/perf/perf_precomp.hpp index 04ccfdef37..4dca93c442 100644 --- a/modules/gpu/perf/perf_precomp.hpp +++ b/modules/gpu/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/gpu/test/test_precomp.hpp b/modules/gpu/test/test_precomp.hpp index 3e6abef82b..b75f8edd88 100644 --- a/modules/gpu/test/test_precomp.hpp +++ b/modules/gpu/test/test_precomp.hpp @@ -41,7 +41,7 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/highgui/perf/perf_precomp.hpp b/modules/highgui/perf/perf_precomp.hpp index fc9c3b8b22..2b57ad7eea 100644 --- a/modules/highgui/perf/perf_precomp.hpp +++ b/modules/highgui/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/highgui/test/test_precomp.hpp b/modules/highgui/test/test_precomp.hpp index 6941a0c6e6..3286c0f59a 100644 --- a/modules/highgui/test/test_precomp.hpp +++ b/modules/highgui/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/imgproc/perf/perf_precomp.hpp b/modules/imgproc/perf/perf_precomp.hpp index 9120beec8b..304802491d 100644 --- a/modules/imgproc/perf/perf_precomp.hpp +++ b/modules/imgproc/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/imgproc/test/test_precomp.hpp b/modules/imgproc/test/test_precomp.hpp index 493a09d366..4c973c1ae0 100644 --- a/modules/imgproc/test/test_precomp.hpp +++ b/modules/imgproc/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/legacy/test/test_precomp.hpp b/modules/legacy/test/test_precomp.hpp index f40c7d406c..b4ac3f5743 100644 --- a/modules/legacy/test/test_precomp.hpp +++ b/modules/legacy/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/ml/test/test_precomp.hpp b/modules/ml/test/test_precomp.hpp index 46334d5277..3ccf10a4ab 100644 --- a/modules/ml/test/test_precomp.hpp +++ b/modules/ml/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/nonfree/perf/perf_precomp.hpp b/modules/nonfree/perf/perf_precomp.hpp index 3afb5b4c35..79a368d712 100644 --- a/modules/nonfree/perf/perf_precomp.hpp +++ b/modules/nonfree/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/nonfree/test/test_precomp.hpp b/modules/nonfree/test/test_precomp.hpp index cbf5253abe..062ab7bb13 100644 --- a/modules/nonfree/test/test_precomp.hpp +++ b/modules/nonfree/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/objdetect/perf/perf_precomp.hpp b/modules/objdetect/perf/perf_precomp.hpp index c5ae36cf94..d1a7e444cf 100644 --- a/modules/objdetect/perf/perf_precomp.hpp +++ b/modules/objdetect/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/objdetect/test/test_precomp.hpp b/modules/objdetect/test/test_precomp.hpp index cb7ac0f157..9100ab04ce 100644 --- a/modules/objdetect/test/test_precomp.hpp +++ b/modules/objdetect/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/photo/perf/perf_precomp.hpp b/modules/photo/perf/perf_precomp.hpp index 3c40b2921f..1172333334 100644 --- a/modules/photo/perf/perf_precomp.hpp +++ b/modules/photo/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/photo/test/test_precomp.hpp b/modules/photo/test/test_precomp.hpp index 877f215323..d1f3dcab22 100644 --- a/modules/photo/test/test_precomp.hpp +++ b/modules/photo/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/stitching/perf/perf_precomp.hpp b/modules/stitching/perf/perf_precomp.hpp index f6cdae81e1..559891fe33 100644 --- a/modules/stitching/perf/perf_precomp.hpp +++ b/modules/stitching/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/stitching/test/test_precomp.hpp b/modules/stitching/test/test_precomp.hpp index e703850bf0..5509d1c86e 100644 --- a/modules/stitching/test/test_precomp.hpp +++ b/modules/stitching/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/video/perf/perf_precomp.hpp b/modules/video/perf/perf_precomp.hpp index bbee05eb74..e1c2b566bf 100644 --- a/modules/video/perf/perf_precomp.hpp +++ b/modules/video/perf/perf_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif diff --git a/modules/video/test/test_precomp.hpp b/modules/video/test/test_precomp.hpp index 6b528bb5a2..a4b869a52f 100644 --- a/modules/video/test/test_precomp.hpp +++ b/modules/video/test/test_precomp.hpp @@ -1,6 +1,6 @@ #ifdef __GNUC__ # pragma GCC diagnostic ignored "-Wmissing-declarations" -# ifdef __clang__ +# if defined __clang__ || defined __APPLE__ # pragma GCC diagnostic ignored "-Wmissing-prototypes" # pragma GCC diagnostic ignored "-Wextra" # endif From 606c23b9aad5551d90075cfdbb3b3f9f0556709c Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Tue, 13 Nov 2012 17:50:29 +0400 Subject: [PATCH 10/11] fixed gpu module tests uses old CommandLineParser class --- modules/gpu/test/main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/gpu/test/main.cpp b/modules/gpu/test/main.cpp index cd5bbda355..63f891a19a 100644 --- a/modules/gpu/test/main.cpp +++ b/modules/gpu/test/main.cpp @@ -119,10 +119,10 @@ int main(int argc, char** argv) try { const char* keys = - "{ h help ? | | Print help}" - "{ i info | | Print information about system and exit }" - "{ device | -1 | Device on which tests will be executed (-1 means all devices) }" - "{ nvtest_output_level | none | NVidia test verbosity level (none, compact, full) }" + "{ h | help ? | false | Print help}" + "{ i | info | false | Print information about system and exit }" + "{ d | device | -1 | Device on which tests will be executed (-1 means all devices) }" + "{ nvtest_output_level | nvtest_output_level | none | NVidia test verbosity level (none, compact, full) }" ; CommandLineParser cmd(argc, (const char**)argv, keys); From a9919e01d0c857a568b6fa46fb3a878f6e6e83e1 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Tue, 13 Nov 2012 17:54:17 +0400 Subject: [PATCH 11/11] fixed bug in gpu::HoughLines --- modules/gpu/src/cuda/hough.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gpu/src/cuda/hough.cu b/modules/gpu/src/cuda/hough.cu index ac65b360a5..ee4d02591b 100644 --- a/modules/gpu/src/cuda/hough.cu +++ b/modules/gpu/src/cuda/hough.cu @@ -236,7 +236,7 @@ namespace cv { namespace gpu { namespace device const int r = blockIdx.x * blockDim.x + threadIdx.x; const int n = blockIdx.y * blockDim.y + threadIdx.y; - if (r >= accum.cols - 2 && n >= accum.rows - 2) + if (r >= accum.cols - 2 || n >= accum.rows - 2) return; const int curVotes = accum(n + 1, r + 1);