图像扩展函数cvCopyMakeBorder的使用

来源:互联网 发布:淘宝买了假货怎么索赔 编辑:程序博客网 时间:2024/05/29 02:52

采用opencv库函数进行扩展:

void cvCopyMakeBorder( const CvArr* src, CvArr* dst, CvPoint offset, intbordertype, CvScalar  value=cvScalarAll(0));
注意参数:bordertype:IPL_BORDER_REFLECT ,IPL_BORDER_CONSTANT。

以图像边缘为扩展则采用IPL_BORDER_REFLECT,参数value可以忽略。

以指定的填充颜色扩展采用IPL_BORDER_CONSTANT,则使用value设置填充颜色,不设置默认为黑色。

#include <cv.h>#include <cxcore.h>#include <highgui.h>extern "C"{#include<stdio.h>#include<stdlib.h>}#define WID 1280#dedine HIG  800IplImage *src;IplImage *extendimg;IplImage *dst;int main(int argc,char **argv){int width=0,height=0;int exwidth=0,exheight=0,exchannels=0;CvRect zone;    if(argv[1]==NULL){printf("usage:program picture\n");return 0;}   src=cvLoadImage(argv[1],1);//1为读取彩色图,0为强制转化为灰度图,-1为默认读取图像的原通道数。   if(!src){   printf("can not find files,please check the path...!");           return 0;   }   cvNamedWindow("source",1);   cvShowImage("source",src);   width=src->width;   height=src->height;   if(width%WID!=0)   exwidth=width+WID-width%WID;   else   exwidth=width;   if(height%HIG!=0)   exheight=height+HIG-height%HIG;   else   exheight=height;   /*图片扩展*/   //exchannels=src->nChannels;   exchannels=3;   extendimg=cvCreateImage(cvSize(exwidth,exheight),IPL_DEPTH_8U,exchannels);   cvCopyMakeBorder(src,extendimg,cvPoint(1,1),IPL_BORDER_CONSTANT,cvScalar(0,0,0));   printf("origal:%d*%d\nafter extend:%d*%d\nchannels:%d\n",width,height,exwidth,exheight,extendimg->nChannels);       cvNamedWindow("externimg",1);       cvShowImage("externimg",extendimg);   while(y_coodinate<exheight){            while(x_coordinate<exwidth){                  zone=cvRect(x_coordinate,y_coodinate,WID,HIG);                  cvSetImageROI(extendimg,zone);                  dst=cvCreateImage(cvSize(WID,HIG),IPL_DEPTH_8U,src->nChannels);                  cvCopy(extendimg,dst,0);                  cvResetImageROI(extendimg);                  cvNamedWindow(savename,1);                  cvShowImage(savename,dst);      x_coordinate=x_coordinate+WID;                      flag++;           }   y_coodinate=y_coodinate+HIG;   x_coordinate=0;   }cvWaitKey(0);cvReleaseImage(&src);cvReleaseImage(&extendimg);cvReleaseImage(&dst);return 0;}


0 0
原创粉丝点击