From 4530c7ad085bea62ec7f2262b0d7561c02db4336 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Thu, 14 Aug 2014 13:18:04 +0400 Subject: [PATCH] trying to fix builds --- modules/core/doc/operations_on_arrays.rst | 7 +++--- modules/core/src/lpsolver.cpp | 5 +++-- .../include/opencv2/highgui/highgui_c.h | 1 + modules/imgproc/src/filterengine.hpp | 4 ++-- modules/imgproc/test/test_contours.cpp | 22 ++++++++++++++++++- modules/photo/doc/denoising.rst | 3 +-- modules/photo/include/opencv2/photo.hpp | 2 +- 7 files changed, 32 insertions(+), 12 deletions(-) diff --git a/modules/core/doc/operations_on_arrays.rst b/modules/core/doc/operations_on_arrays.rst index 3f85eab300..737fb08124 100644 --- a/modules/core/doc/operations_on_arrays.rst +++ b/modules/core/doc/operations_on_arrays.rst @@ -3405,12 +3405,11 @@ and want to compute value of the "virtual" pixel ``Point(-5, 100)`` in a floatin borderInterpolate(-5, img.cols, BORDER_WRAP)); -Normally, the function is not called directly. It is used inside :ocv:class:`FilterEngine` -and :ocv:func:`copyMakeBorder` to compute tables for quick extrapolation. +Normally, the function is not called directly. It is used inside filtering functions +and also in :ocv:func:`copyMakeBorder`. .. seealso:: - :ocv:class:`FilterEngine`, :ocv:func:`copyMakeBorder` @@ -3443,7 +3442,7 @@ Forms a border around an image. The function copies the source image into the middle of the destination image. The areas to the left, to the right, above and below the copied source image will be filled with extrapolated pixels. -This is not what :ocv:class:`FilterEngine` or filtering functions based on it do (they extrapolate +This is not what filtering functions based on it do (they extrapolate pixels on-fly), but what other more complex functions, including your own, may do to simplify image boundary handling. diff --git a/modules/core/src/lpsolver.cpp b/modules/core/src/lpsolver.cpp index fe976e51a0..6c53108c49 100644 --- a/modules/core/src/lpsolver.cpp +++ b/modules/core/src/lpsolver.cpp @@ -46,8 +46,9 @@ #define dprintf(x) #define print_matrix(x) -namespace cv{ - +namespace cv +{ + using std::vector; #ifdef ALEX_DEBUG diff --git a/modules/highgui/include/opencv2/highgui/highgui_c.h b/modules/highgui/include/opencv2/highgui/highgui_c.h index b6b56ceb02..5d9a567379 100644 --- a/modules/highgui/include/opencv2/highgui/highgui_c.h +++ b/modules/highgui/include/opencv2/highgui/highgui_c.h @@ -43,6 +43,7 @@ #define __OPENCV_HIGHGUI_H__ #include "opencv2/core/core_c.h" +#include "opencv2/imgproc/imgproc_c.h" #include "opencv2/imgcodecs/imgcodecs_c.h" #include "opencv2/videoio/videoio_c.h" diff --git a/modules/imgproc/src/filterengine.hpp b/modules/imgproc/src/filterengine.hpp index 41594c9db7..0fd7931c2f 100644 --- a/modules/imgproc/src/filterengine.hpp +++ b/modules/imgproc/src/filterengine.hpp @@ -48,8 +48,8 @@ enum KERNEL_ASYMMETRICAL = 2, // kernel[i] == -kernel[ksize-i-1] , and the anchor is at the center KERNEL_SMOOTH = 4, // all the kernel elements are non-negative and summed to 1 KERNEL_INTEGER = 8 // all the kernel coefficients are integer numbers -}; - +}; + /*! The Base Class for 1D or Row-wise Filters diff --git a/modules/imgproc/test/test_contours.cpp b/modules/imgproc/test/test_contours.cpp index a8c9a72792..6c5c3f0ebb 100644 --- a/modules/imgproc/test/test_contours.cpp +++ b/modules/imgproc/test/test_contours.cpp @@ -387,7 +387,27 @@ _exit_: return code; } - TEST(Imgproc_FindContours, accuracy) { CV_FindContourTest test; test.safe_run(); } +TEST(Core_Drawing, _914) +{ + const int rows = 256; + const int cols = 256; + + Mat img(rows, cols, CV_8UC1, Scalar(255)); + + line(img, Point(0, 10), Point(255, 10), Scalar(0), 2, 4); + line(img, Point(-5, 20), Point(260, 20), Scalar(0), 2, 4); + line(img, Point(10, 0), Point(10, 255), Scalar(0), 2, 4); + + double x0 = 0.0/pow(2.0, -2.0); + double x1 = 255.0/pow(2.0, -2.0); + double y = 30.5/pow(2.0, -2.0); + + line(img, Point(int(x0), int(y)), Point(int(x1), int(y)), Scalar(0), 2, 4, 2); + + int pixelsDrawn = rows*cols - countNonZero(img); + ASSERT_EQ( (3*rows + cols)*3 - 3*9, pixelsDrawn); +} + /* End of file. */ diff --git a/modules/photo/doc/denoising.rst b/modules/photo/doc/denoising.rst index 9bbe0d4748..ce457b6900 100644 --- a/modules/photo/doc/denoising.rst +++ b/modules/photo/doc/denoising.rst @@ -196,7 +196,7 @@ The function converts image to CIELAB colorspace and then separately denoise L a :ocv:func:`fastNlMeansDenoisingColored` - + denoise_TVL1 --------------------------------- @@ -240,4 +240,3 @@ into play. .. [ChambolleEtAl] A. Chambolle, V. Caselles, M. Novaga, D. Cremers and T. Pock, An Introduction to Total Variation for Image Analysis, http://hal.archives-ouvertes.fr/docs/00/43/75/81/PDF/preprint.pdf (pdf) .. [Mordvintsev] Alexander Mordvintsev, ROF and TV-L1 denoising with Primal-Dual algorithm, http://znah.net/rof-and-tv-l1-denoising-with-primal-dual-algorithm.html (blog entry) - diff --git a/modules/photo/include/opencv2/photo.hpp b/modules/photo/include/opencv2/photo.hpp index 790bb317b2..df0ccbeb34 100644 --- a/modules/photo/include/opencv2/photo.hpp +++ b/modules/photo/include/opencv2/photo.hpp @@ -92,7 +92,7 @@ CV_EXPORTS_W void fastNlMeansDenoisingColoredMulti( InputArrayOfArrays srcImgs, int imgToDenoiseIndex, int temporalWindowSize, float h = 3, float hColor = 3, int templateWindowSize = 7, int searchWindowSize = 21); - + CV_EXPORTS_W void denoise_TVL1(const std::vector& observations,Mat& result, double lambda=1.0, int niters=30); enum { LDR_SIZE = 256 };