首页 > 代码库 > OpenCV Tutorials —— Adding borders to your images

OpenCV Tutorials —— Adding borders to your images

扩展图像边界:

      1. BORDER_CONSTANT: Pad the image with a constant value (i.e. black or 0
  1. BORDER_REPLICATE: The row or column at the very edge of the original is replicated to the extra border.

 

copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );

The arguments are:

  1. 1,src: Source image
  2. 2,dst: Destination image
  3. 3,top, bottom, left, right: Length in pixels of the borders at each side of the image. We define them as being 5% of the original size of the image.
  4. 4,borderType: Define what type of border is applied. It can be constant or replicate for this example.
  5. 5,value: If borderType is BORDER_CONSTANT, this is the value used to fill the border pixels.

 

Code

#include "stdafx.h"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include <stdlib.h>#include <stdio.h>using namespace cv;/// Global VariablesMat 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 = http://www.mamicode.com/imread("img2.jpg" );	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);	// 0.5 秒		if( (char)c == 27 )		{ break; }		else if( (char)c == ‘c‘ )		{ borderType = BORDER_CONSTANT; }		else if( (char)c == ‘r‘ )		{ borderType = BORDER_REPLICATE; }		value = http://www.mamicode.com/Scalar( rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255) );>

OpenCV Tutorials —— Adding borders to your images