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`
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.
#define dprintf(x)
#define print_matrix(x)
-namespace cv{
-
+namespace cv
+{
+
using std::vector;
#ifdef ALEX_DEBUG
#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"
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
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. */
:ocv:func:`fastNlMeansDenoisingColored`
-
+
denoise_TVL1
---------------------------------
.. [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)
-
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<Mat>& observations,Mat& result, double lambda=1.0, int niters=30);
enum { LDR_SIZE = 256 };