OpenCV中的图像尺寸调整cvResize()

来源:互联网 发布:sklearn tensorflow 编辑:程序博客网 时间:2024/05/21 07:00

Resize
图像大小变换 

void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );

src 
输入图像


dst 
输出图像


interpolation
插值方法: 
CV_INTER_NN - 最近邻插值
CV_INTER_LINEAR - 双线性插值 (缺省使用) 
CV_INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于CV_INTER_NN 方法
CV_INTER_CUBIC - 立方插值
函数cvResize将图像 src 改变尺寸得到与 dst 同样大小。若设定 ROI,函数将按常规支持 ROI。


参考如下代码:

#include "cv.h"
#include "highgui.h"
int main(int argc,char** argv){
IplImage* img1=cvLoadImage("lena.jpg");
cvNamedWindow("1",1);
cvShowImage("1",img1);


IplImage* img2=cvCreateImage(cvSize(img->width/2,img->height/2),8,3);
cvResize(img,img2,CV_INTER_NN);
cvNamedWindow("2",1);
cvShowImage("2",img2);


while (1){
if (cvWaitKey(100)==27) break;
}

cvDestroyWindow("1“);
cvDestroyWindow("2");
cvReleaseImage(&img1);
cvReleaseImage(&img2);
return 0;
}

将远图像缩小为原图的1/4,其中cvResize()的第三个参数可以是CV_INTER_NN、CV_INTER_LINEAR,CV_INTER_AREA或CV_INTER_CUBIC表示不同的插值方法。



0 0
原创粉丝点击