使用opencv库中的cvResize函数
功能:函数cvResize 重新调整图像src(或它的ROI),使它精确匹配目标dst(或其ROI)。
(void) cvResize( const CvArr* src, CvArr* dst,
int interpolation CV_DEFAULT( 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 <iostream>
#include <cv.h>
#include <highgui.h>
using namespace std;
int main()
{
IplImage* imag=cvLoadImage("1.jpg",1);
if(imag==0)
return -1;
float scal=0.68; //缩放倍数为0.68倍
CvSize dec_size;
dec_size.height=cvGetSize(imag).height*scal;
dec_size.width=cvGetSize(imag).width*scal;
IplImage* dec=cvCreateImage(dec_size,imag->depth,imag->nChannels);
cvResize(imag,dec,1);
cvNamedWindow("cvResize",1);
cvNamedWindow("source",1);
cvShowImage("cvResize",dec);
cvShowImage("source",imag);
cvWaitKey(0);
cvReleaseImage(&imag);
cvReleaseImage(&dec);
cvDestroyWindow("cvResize");
cvDestroyWindow("source");
return 0;
}
网友评论