--- /dev/null
+/**
+ * @file copyMakeBorder_demo.cpp
+ * @brief Sample code that shows the functionality of copyMakeBorder
+ * @author OpenCV team
+ */
+
+#include "opencv2/imgproc/imgproc.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include <stdlib.h>
+#include <stdio.h>
+
+using namespace cv;
+
+/// Global Variables
+Mat src, dst;
+int top, bottom, left, right;
+int borderType;
+Scalar value;
+char* window_name = "copyMakeBorder Demo";
+RNG rng(12345);
+
+/**
+ * @function main
+ */
+int main( int argc, char** argv )
+{
+
+ int c;
+
+ /// Load an image
+ src = imread( argv[1] );
+
+ if( !src.data )
+ { return -1;
+ printf(" No data entered, please enter the path to an image file \n");
+ }
+
+ /// Brief how-to for this program
+ printf( "\n \t copyMakeBorder Demo: \n" );
+ printf( "\t -------------------- \n" );
+ printf( " ** Press 'c' to set the border to a random constant value \n");
+ printf( " ** Press 'r' to set the border to be replicated \n");
+ printf( " ** Press 'ESC' to exit the program \n");
+
+ /// Create window
+ namedWindow( window_name, CV_WINDOW_AUTOSIZE );
+
+ /// Initialize arguments for the filter
+ top = (int) (0.05*src.rows); bottom = (int) (0.05*src.rows);
+ left = (int) (0.05*src.cols); right = (int) (0.05*src.cols);
+ dst = src;
+
+ imshow( window_name, dst );
+
+ while( true )
+ {
+ c = waitKey(500);
+
+ if( (char)c == 27 )
+ { break; }
+ else if( (char)c == 'c' )
+ { borderType = BORDER_CONSTANT; }
+ else if( (char)c == 'r' )
+ { borderType = BORDER_REPLICATE; }
+
+ value = Scalar( rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255) );
+ copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );
+
+ imshow( window_name, dst );
+ }
+
+ return 0;
+}
+
+
--- /dev/null
+/**
+ * @file filter2D_demo.cpp
+ * @brief Sample code that shows how to implement your own linear filters by using filter2D function
+ * @author OpenCV team
+ */
+
+#include "opencv2/imgproc/imgproc.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include <stdlib.h>
+#include <stdio.h>
+
+using namespace cv;
+
+/**
+ * @function main
+ */
+int main ( int argc, char** argv )
+{
+ /// Declare variables
+ Mat src, dst;
+
+ Mat kernel;
+ Point anchor;
+ double delta;
+ int ddepth;
+ int kernel_size;
+ char* window_name = "filter2D Demo";
+
+ int c;
+
+ /// Load an image
+ src = imread( argv[1] );
+
+ if( !src.data )
+ { return -1; }
+
+ /// Create window
+ namedWindow( window_name, CV_WINDOW_AUTOSIZE );
+
+ /// Initialize arguments for the filter
+ anchor = Point( -1, -1 );
+ delta = 0;
+ ddepth = -1;
+
+ /// Loop - Will filter the image with different kernel sizes each 0.5 seconds
+ int ind = 0;
+ while( true )
+ {
+ c = waitKey(500);
+ /// Press 'ESC' to exit the program
+ if( (char)c == 27 )
+ { break; }
+
+ /// Update kernel size for a normalized box filter
+ kernel_size = 3 + 2*( ind%5 );
+ kernel = Mat::ones( kernel_size, kernel_size, CV_32F )/ (float)(kernel_size*kernel_size);
+
+ /// Apply filter
+ filter2D(src, dst, ddepth , kernel, anchor, delta, BORDER_DEFAULT );
+ imshow( window_name, dst );
+ ind++;
+ }
+
+ return 0;
+}