您的位置:首页 > 运维架构

【opencv练习19 - 图像添加边界】

2016-09-04 16:44 393 查看
/*****************************************************
测试程序 【图像添加边界】
时间: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、边界延伸样式

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息