图像扩展函数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
- 图像扩展函数cvCopyMakeBorder的使用
- 边界扩充方法函数(cvCopyMakeBorder)
- opencv卷积cvFileter2D与卷积边界cvCopyMakeBorder处理图像的总结
- 第六章 - 图像变换 - 卷积边界(cvCopyMakeBorder)
- 第六章 - 图像变换 - 卷积边界(cvCopyMakeBorder)
- 第六章 - 图像变换 - 卷积(cvFilter2D) - 卷积边界(cvCopyMakeBorder)
- 图像滤波函数imfilter函数的应用及其扩展
- 【图像处理】OpenCV函数threshold的使用
- 图像数据集的扩展
- PHP使用imagick扩展来合并图像
- PHP使用imagick扩展来合并图像
- mysqli的扩展函数
- es6函数的扩展
- 07 函数的扩展
- 函数的扩展
- ES6-函数的扩展
- 函数的扩展
- ES6--函数的扩展
- 硬盘的原理以及SQL Server如何利用硬盘原理减少IO
- oracle设定用户密码使用时间
- Objective-C ---KVO内部实现原理
- 51单片机学习笔记【一】——LED灯实验
- Java使用手机发送短信程序
- 图像扩展函数cvCopyMakeBorder的使用
- Mybatis问题
- 菜鸟系列——字典树
- 整数划分
- 黑马day09 数据库乱码分析
- bzoj1002
- 发发牢骚,觉得走c#这条路,不该太浮躁。
- 机器视觉光源学习总结——高角度环形光源
- 《黑天鹅》观后感