码迷,mamicode.com
首页 > 其他好文 > 详细

OpenCV Tutorials —— Adding borders to your images

时间:2014-11-18 23:44:20      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:des   style   http   io   ar   os   sp   for   strong   

扩展图像边界:

      1. BORDER_CONSTANT: Pad the image with a constant value (i.e. black or bubuko.com,布布扣
  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 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( "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 = 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;
}

OpenCV Tutorials —— Adding borders to your images

标签:des   style   http   io   ar   os   sp   for   strong   

原文地址:http://www.cnblogs.com/sprint1989/p/4106600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!