f76dd99299
Conflicts: cmake/OpenCVModule.cmake doc/tutorials/calib3d/camera_calibration/camera_calibration.rst doc/tutorials/features2d/feature_detection/feature_detection.rst doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.rst doc/tutorials/features2d/feature_homography/feature_homography.rst modules/core/include/opencv2/core/operations.hpp modules/core/src/arithm.cpp modules/gpu/perf/perf_video.cpp modules/imgproc/include/opencv2/imgproc/imgproc.hpp modules/java/generator/gen_java.py modules/java/generator/src/cpp/VideoCapture.cpp modules/nonfree/src/opencl/surf.cl modules/ocl/include/opencv2/ocl/ocl.hpp modules/ocl/perf/perf_haar.cpp modules/ocl/perf/perf_precomp.hpp modules/ocl/src/color.cpp modules/ocl/src/filtering.cpp modules/ocl/test/test_color.cpp modules/ocl/test/test_objdetect.cpp modules/python/src2/cv2.cpp samples/gpu/CMakeLists.txt samples/gpu/super_resolution.cpp
76 lines
1.7 KiB
C++
76 lines
1.7 KiB
C++
/**
|
|
* @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;
|
|
const char* window_name = "copyMakeBorder Demo";
|
|
RNG rng(12345);
|
|
|
|
/**
|
|
* @function main
|
|
*/
|
|
int main( int, char** argv )
|
|
{
|
|
|
|
int c;
|
|
|
|
/// Load an image
|
|
src = imread( argv[1] );
|
|
|
|
if( !src.data )
|
|
{
|
|
printf(" No data entered, please enter the path to an image file \n");
|
|
return -1;
|
|
}
|
|
|
|
/// 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, 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 );
|
|
|
|
for(;;)
|
|
{
|
|
c = waitKey(500);
|
|
|
|
if( (char)c == 27 )
|
|
{ break; }
|
|
else if( (char)c == 'c' )
|
|
{ borderType = BORDER_CONSTANT; }
|
|
else if( (char)c == 'r' )
|
|
{ borderType = BORDER_REPLICATE; }
|
|
|
|
Scalar value( 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;
|
|
}
|
|
|
|
|