/*****************************************************
测试程序 【图像添加边界】
时间:2016年8月26日
******************************************************/
//【全局变量】
Mat src, dst;
int top, bottom; //【添加边界后的图像尺寸】
int leftImage, rightImage;
int borderType;
const char* window_name = "copyMakeBorder Demo";
RNG rng(12345);
int main(void)
{
int c;
src = imread( "YY01.jpg");
//本程序操作简介
printf( "\n \t copyMakeBorder Demo: \n" );
printf( "\t -------------------- \n" );
printf( " ** Press 'c——Constant【设置边界随机常量】' \n");
printf( " ** Press 'r——replicate【设置边界为边缘延伸】'\n");
printf( " ** Press 'ESC' to exit the program \n");
namedWindow( window_name, WINDOW_AUTOSIZE );
//【初始化参数】
top = (int) (0.05*src.rows); bottom = (int) (0.05*src.rows);
leftImage = (int) (0.05*src.cols); rightImage = (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; }
//初始化参数value
Scalar value( rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255) );
//创建图像边界
//参数src,dst,新的边界*4,边界类型,边界值
copyMakeBorder( src, dst, top, bottom, leftImage, rightImage, borderType, value );
imshow( window_name, dst );
}
return 0;
}
程序根据用户键盘输入来设置用户所需要的边界样式~~~ 边界用途:主要用于滤波器操作的过程or相框
1、常量样式
2、边界延伸样式